Add Oct. 28, 2013 class notes
authorGitHub Teacher <training@github.com>
Mon, 28 Oct 2013 21:14:46 +0000 (22:14 +0100)
committerGitHub Teacher <training@github.com>
Mon, 28 Oct 2013 21:14:46 +0000 (22:14 +0100)
classnotes/2013-10-28-private-workshop.md [new file with mode: 0644]

diff --git a/classnotes/2013-10-28-private-workshop.md b/classnotes/2013-10-28-private-workshop.md
new file mode 100644 (file)
index 0000000..c9bc83e
--- /dev/null
@@ -0,0 +1,655 @@
+---
+layout: bare
+title: Private Git Foundations Training
+description: Private Git Foundations Training Class Notes
+tags: [notes]
+path: classnotes/2013-09-17-private-git-foundations-class.md
+eventdate: 2013-09-17
+---
+
+## Teachers
+* Jordan McCullough ([Twitter](http://twitter.com/thejordanmcc), [GitHub](https://github.com/jordanmccullough))
+* Markus Olsson ([Twitter](http://twitter.com/niik), [GitHub](https://github.com/niik))
+
+
+## Class Outline
+
+* Configuration with `config`
+* Establishing SSH Authentication 
+* Creating repositories (locally and remotely)
+* Reviewing Three Stage Thinking with `add`
+* Creating version history with `commit`
+* Reviewing history with `log`
+* Searching history with regex and string matching
+* Assessing changes with `diff`
+* Deleting and untracking with `rm`
+* Understanding the similarity index `mv`
+* Assessing file history through renames and paths
+* Working with branches and merges
+* Understanding local and upstream repositories
+* Exploring Pull Request and Forking on GitHub.com
+* Rewriting history with `rebase` and interactive modes
+* Undoing commits with the three variants of `reset`
+* Recovering with `reflog` history
+* Storing works-in-progress with `stash`
+* Selecting individual commits with `cherry-pick`
+* Creating release markers with `tags`
+
+
+## Timing
+
+* Begin Training: 9:00am
+* 10 minute Break: 10:30am
+* Lunch Break: 12:00pm
+* Resume Teaching: 01:00pm
+* 10 minute Break: 2:30pm
+* Conclude Training: 4:00pm
+
+## Course Materials, Links
+* [Course Slides](http://teach.github.com/presentations/)
+* [Git Teaching Materials](http://teach.github.com)
+* [Course Slides Source](https://github.com/github/teach.github.com/tree/gh-pages/presentations)
+* [Free Office Hours Sessions](http://training.github.com/web/free-classes/)
+
+## Resources
+
+* [Adding SSL Certificates for GitHub.com (Common for Windows XP)](http://stackoverflow.com/questions/3777075/https-github-access/4454754#4454754)
+* Disabling SSL Certificate Checks for Git:
+
+        git config --global http.sslVerify false
+* [Open Source Git Ignore Templates](https://github.com/github/gitignore)
+* [Book Authoring on Git and GitHub](http://teach.github.com/articles/book-authoring-using-git-and-github/)
+* [GitHub Training Videos](http://youtube.com/githubguides/)
+
+
+* [GitHub Commit Status API for Continuous Integration](https://github.com/blog/1227-commit-status-api)
+* [Git Credential Cache for HTTP](http://teach.github.com/articles/lesson-git-credential-cache/)
+* [GitHub Issues Cheatsheet](http://teach.github.com/articles/github-issues-cheatsheet/)
+* [SHA-1 Hash Collisions](http://git-scm.com/book/ch6-1.html#A-SHORT-NOTE-ABOUT-SHA-1)
+* [More Git Cheatsheets](http://teach.github.com/articles/git-cheatsheets/)
+
+## Installation
+* Git Installation
+    * [The GitHub for Windows Client and Command Line](http://windows.github.com)
+    * [The GitHub for Mac Client and Command Line](http://mac.github.com)
+    * [The Git-SCM Web Site (All Platforms)](http://git-scm.com)
+* Minimum is 1.7.ANYTHING, but can have issues with HTTPS credential prompting.
+* Best is 1.8.0 or higher
+
+## Suggested Books, Articles
+* [Free ProGit Book](http://git-scm.com/book)
+* [Getting started with Version Control](http://teach.github.com/articles/lesson-new-to-version-control/)
+* [The GitHub Flow](http://scottchacon.com/2011/08/31/github-flow.html)
+* [DVCS Workflows Book](https://github.com/zkessin/dvcs-workflows)
+* [Git Workflow Links](https://pinboard.in/u:matthew.mccullough/t:git+workflow)
+
+
+
+## Day One Command Line History
+
+    git config user.name
+    git config --list --global
+    git --version
+    git config --list --global
+    git config --global user.name "GitHub Teacher"
+    git config --global user.name
+    git config --global user.email "training@github.com"
+    git config --global --list
+    cat ~/.gitconfig
+    git config --global core.autocrlf input
+    git config --global --list
+    git config --global color.ui auto
+    cd scratch
+    git init jordan-project
+    cd jordan-project
+    git status
+    touch index.html
+    touch README.md
+    touch styles.css
+    touch app.js
+    git status
+    git add README.md
+    git add index.html
+    git status
+    git commit -m"Initial commit, adding basic readme and home page"
+    git status
+    git add app.js
+    git status
+    git commit -m'Add placeholder javascript app file'
+    git status
+    git add styles.css
+    git status
+    git commit -m'Add placeholder for the main stylesheet'
+    git status
+    git status
+    vi README.md
+    git status
+    vi index.html
+    git status
+    git diff
+    git add README.md
+    git status
+    git diff
+    git status
+    git diff
+    git status
+    git diff --staged
+    git commit -m'Include basic title and description'
+    git status
+    git add index.html
+    git status
+    git diff
+    git diff --staged
+    git status
+    git commit -m'Include basic html structure and title tag'
+    git status
+    vi README.md
+    git status
+    git add README.md
+    git status
+    git diff
+    git diff --staged
+    vi README.md
+    git status
+    git diff
+    git diff --staged
+    git add README.md
+    git status
+    git status
+    git diff --staged
+    git commit -m'Add trainer names, remove description'
+    git status
+    cd .git
+    cd ../
+    vi index.html
+    git status
+    git add .
+    git status
+    git diff
+    git diff --staged
+    vi index.html
+    git status
+    git diff
+    git diff --staged
+    git diff HEAD
+    git status
+    git status 
+    git add .
+    git status
+    git commit -m'Add title and instructors to page'
+    git status
+    git status
+    git config --global alias.s "status -s"
+    git config --global --list
+    git s
+    git add app.js
+    git s
+    git commit -m'Add basic IIFE'
+    git s
+    vi index.html
+    git s
+    git diff
+    git diff --color-words
+    git diff
+    git diff --color-words
+    git diff --word-diff
+    git diff --stat
+    git log
+    git log --format=raw
+    git log --stat
+    git log --patch
+    git log --patch --color-words
+    git log --patch --word-diff
+    git s
+    git diff
+    git diff --color-words
+    git add index.html
+    git commit -m'Change ampersands'
+    git status
+    git log --patch --color-words
+    git log
+    git log -3
+    git log -3 --format=oneline --patch
+    git log -3 --format=oneline --patch --color-words
+    git log --oneline
+    git config --global alias.lol "log --oneline --graph --decorate --all"
+    git lol
+    git lol -5 --stat
+    vi README.md
+    git log -G "## with"
+    git log -G "^(##)"
+    git log -G "^(##) Jo"
+    git log -S "GitHub" --patch --color-words
+    git log --grep "IIFE"
+    git s
+    generaterandomchanges 5 sample txt
+    git lol --stat
+    git rm sample1.txt
+    git status
+    git commit -m'Remove first placeholder file'
+    git status
+    git rm sample*.txt
+    git s
+    git status
+    git reset HEAD 
+    git status
+    git status
+    git checkout  -- .
+    git status
+    git rm sample*.txt
+    git status
+    git commit -m'Remove sample files'
+    git s
+    git status
+    generaterandomchanges 5 more txt
+    git lol
+    open .
+    git status
+    git add more*.txt
+    git status
+    git add -u .
+    git status
+    git commit -m'Remove first three more files'
+    git status
+    git rm more4.txt
+    git status
+    open .
+    git status
+    git add -A 
+    git status
+    git commit -m'Remove remaining more files'
+    git status
+    vi jordan.txt
+    git status
+    git add .
+    git commit -m'Add the jordan file'
+    git status
+    git rm --cached jordan.txt
+    git status
+    git commit -m'Remove tracking of jordan content'
+    git status
+    cat jordan.txt
+    git status
+    rm jordan.txt
+    git status
+    mkdir css
+    mkdir js
+    git status
+    git mv app.js js/main.js
+    git status
+    git commit -m'Refactor, clean up javascript location from root'
+    open .
+    git status
+    git status -u
+    git status -u
+    git add -u styles.css
+    git status
+    git add css
+    git status
+    git commit -m'Move stylesheets to separate dir'
+    vi css/styles.css
+    git status
+    git add .
+    git status
+    mv css/styles.css css/main.css
+    git status
+    git add -A
+    git status
+    git reset HEAD
+    git status
+    mv css/main.css css/styles.css
+    git status
+    git add .
+    git status
+    git diff --staged
+    git commit -m'Add font size'
+    git status
+    git status
+    cat dir-listing.txt
+    git add .
+    git status
+    git commit -m'Add directory listing'
+    git status
+    git mv dir-listing.txt home-directory.txt
+    git status
+    vi home-directory.txt
+    git status
+    git diff --staged
+    git add -A
+    git status
+    git commit -m'Renamed dir listing, edit content'
+    git log -3 --stat
+    git log -3 --stat  -M
+    git log -3 --stat  -M98
+    git log -3 --stat  -M95
+    git log -3 --stat -p --color-words -M95
+    vi home-directory.txt
+    git status
+    git add .
+    git commit -m'Remove first few lines of dir list'
+    git log -M --stat
+    clea
+    git log home-directory.txt
+    git log --stat home-directory.txt
+    git log --stat --follow home-directory.txt
+    git lol
+    git status
+    git branch
+    git lol
+    git branch jordan-feature
+    git branch
+    git checkout jordan-feature 
+    git graphlive
+    git graphlive 15
+    cd scratch
+    cd jordan-project
+    git graphlive 15
+    git branch
+    git rm home-directory.txt
+    git status
+    git commit -m'Remove sample dir file'
+    touch about.html
+    git status
+    git s
+    git add .
+    git status
+    touch contact.html
+    git s
+    git add .
+    git status
+    git commit -m'Add placeholder new pages'
+    git status
+    git checkout master
+    git checkout jordan-feature 
+    generaterandomfiles 3 jordan md
+    git status
+    git add .
+    git status
+    git commit -m'Add jordan files'
+    git checkout master
+    git status
+    git merge jordan-feature 
+    git branch -d jordan-feature 
+    git checkout -b feature-2
+    git status
+    git rm jordan*
+    git status
+    git commit -m'Remove jordan files'
+    git status
+    git mv about.html team.html
+    git status
+    git commit -m'Rename team page'
+    git status
+    git log --format=raw -2
+    git checkout master 
+    git branch
+    touch js/dependencies.js
+    git status
+    git add .
+    git status
+    git commit -m'Add dependencies javascript stuff'
+    git branch
+    git merge feature-2 
+    git log -2 --format=raw 
+    git branch -d feature-2 
+    git checkout -b random-stuff
+    generaterandomchanges 3 random txt
+    git branch -d random-stuff 
+    git checkout master
+    git branch -d random-stuff 
+    git branch -D random-stuff 
+    cd scratch/
+    cd samples
+    git init tes
+    cd tes
+    generaterandomchanges 5 main txt
+    git lol --oneline
+    git rebase -i HEAD^^^
+    git status
+    git log --stat
+    git lol
+    git branch feature 1ffd207
+    git checkout feature 
+    git checkout master -- main4.txt
+    git status
+    git diff
+    ssh-keygen -t rsa -C"GitHub Teacher key"
+    cat /Users/jmccullough/.ssh/id_rsa.pub
+    git remote add origin https://github.com/githubteacher/jordan-project.git
+    git remote 
+    git remote -v
+    git push -u origin master
+    git fetch
+    git pugit log -2 --oneline --stat
+    git remote 
+    git remote -v
+    git branch -v
+    git branch -vv
+    git fetch
+    git branch -vv
+    git branch
+    vi team.html
+    git status
+    git add .
+    git commit -m'Add team page title'
+    git status
+    git log --oneline --stat origin/master
+    git pugit remote -v
+    git fetch origin
+    git branch 
+    git branch -a
+    git checkout team-improvements 
+    git branch -a
+    vi team.html
+    git status
+    git add .
+    git status
+    git commit -m'Add title for team announcement'
+    git branch -vv
+    git push
+    git branch
+    git pugit branch -vv
+    git branch
+    git merge master
+    git status
+    vi team.html
+    git status
+    git add .
+    git s
+    git status
+    git lol
+    git push
+    git fetch
+    git branch -vv
+    git branch
+    git status
+    git checkout master 
+    mkdir student
+    cd student
+    git clone https://github.com/githubstudent/jordan-project.git
+    git branch
+    cd jordan-project
+    git branch
+    git checkout -b student-jordan
+    generaterandomchanges 10 jordan txt
+    git status
+    git lol
+    git branch -a
+    git remote -v
+    git push -u origin student-jordan 
+    git remote -v
+    git remote add upstream https://github.com/githubteacher/jordan-project.git
+    git remote -v
+    git remote rm update 
+    git remote rm upstream
+    git remote add teacher https://github.com/githubteacher/jordan-project.git
+    git remote -v
+    git fetch teacher master
+    git fetch teacher
+    git branch -a
+    git checkout master
+    git merge teacher/master
+    git status
+    git push
+    cd ..
+    cd ../
+    cd jordan-project
+    git branch
+    git pugit status
+    git branch -a
+    git checkout -b cleanup
+    git rm jordan*
+    git status
+    git commit -m'Remove jordan files'
+    git status
+    vi README.md
+    git status
+    git add .
+    git s
+    git commit -m'Add description'
+    git status
+    git branch
+    git checkout master
+    git graphlive 15
+    generaterandomchanges 3 bug-fixes txt
+    git status
+    git branch
+    git checkout cleanup 
+    git rebase master
+    cd scratch
+    cd samples
+    cd tes
+    git blame main1.txt
+    cd ..
+    cd ..
+    cd student
+    cd jordan-project
+    git blame README.md
+    git merge cleanup 
+    git checkout master 
+    git merge cleanup 
+    git branch -d cleanup 
+    generaterandomchanges 10 random md
+    git rebase -i 1a12325
+    git status
+    git rebase --continue
+    git rebase -i 1a12325
+    git checkout master
+    git status
+    generaterandomchanges 10 reset md
+    git reset --soft 5f961f
+    git status
+    git commit -m'Add reset 9 and 10'
+    git reset --mixed e7dc8
+    git status
+    git add reset1*.
+    git add reset1*
+    git status
+    git add reset9.md
+    git status
+    rm reset6.md
+    rm reset7.md
+    git status
+    rm reset8.md
+    git status
+    git commit -m'Add reset 9 and 10'
+    git status
+    git reset --hard 8d1ddc4
+    git status
+    git reflog
+    git reflog
+    git branch recover-5-file e7dc875
+    git branch
+    git checkout recover-5-file 
+    git branch
+    git checkout master
+    git reset --hard 7b7125d
+    git graphlive 20
+    git push
+    generaterandomchanges 10 last-of-rb txt
+    git reset --soft origin/master
+    git status
+    git commit -m'Add 10 more rebase random files'
+    git branch -vv
+    git push
+    git reset --soft e7dc875
+    git status
+    git commit -m'Cleanup, will require The Force'
+    git push
+    git push -f
+    git rm reset*
+    git status
+    git rm last*
+    git status
+    git rm random*
+    git commit -m'Remove all random files'
+    git status
+    git git rm bug-fixes*
+    git status
+    git commit -m'Remove bug fix notes'
+    git push
+    git revert 644cce9
+    git status
+    git branch -vv
+    git push
+    git branch
+    git branch -d team-improvements 
+    git branch -d recover-5-file 
+    git branch
+    git checkout -b important-work
+    touch pick-me-1.md
+    echo "Pick Me > pick-me-1.md
+    vi pick-me-1.md
+    git status
+    git add .
+    git status
+    git commit -m'Pick me file'
+    git rm bug-fixes*
+    git commit -m'Remove bug fixes'
+    git checkout master
+    git cherry-pick 0e0374d
+    vi index.html
+    git status
+    git rm team.html
+    git status
+    git stash
+    git status
+    git checkout -b stuff
+    git stash list
+    git stash pop
+    git diff
+    git add index.html
+    git s
+    git commit -m'Updated class finish time'
+    git status
+    git stash save "Deleting team page"
+    git stash list
+    git show stash@{0}
+    git rm contact.html
+    git status
+    git stash save "Remove the contact page"
+    git stash list
+    git branch remove-pages stash@{1}
+    git branch -a
+    git checkout master 
+    git status
+    git merge remove-pages 
+    git branch -d remove-pages 
+    git remote -v
+    git branch -a
+    git fetch
+    git fetch --prune
+    git branch -a
+    git branch -d stuff 
+    git graphlive 15
+    git status
+    generaterandomchanges 15 final-stuff md
+    git status
+    git tag V0.1 ccf66b6
+    git show V0.1
+    git tag -a BUG_FIXES cdcedfc
+    git log --oneline -5 V0.1
+    git log --oneline -5 BUG_FIXES 
+    git show BUG_FIXES 
+    git tag
+    git push --tags