Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
2012-09-21 GitHub Open Enrollment Notes

2012-09-21 GitHub Open Enrollment Notes

Course Topics Overview

Day 1

  • Introductions
  • History of Git and your initial setup
  • Git configuration and its inheritance
  • SSH Authentication and your first repository
  • Understanding and thinking in Git's three stages
  • Adding, committing, and diff-ing code changes
  • The Similarity Index; Moving, Renaming, and Removing files
  • Overview of Git's Architecture

Day 2

  • Network protocols, proxies, and Git's speed
  • Managing and using Git Remotes
  • Branching, Tagging, and Stashing
  • Merging, Rebasing, and managing conflicts
  • Undoing your work with Git
  • Making Git work with SVN

CI and GitHub

GitHub Flow

Practice Repo

https://github.com/githubstudent/training-repo-09-12

Slides

RefCard Cheat Sheet

http://refcardz.dzone.com/refcardz/getting-started-git

Recommended Free Git Book

http://git-scm.com/book

Shell Prompt Enhancements

http://ambientideas.com/blog/index.php/2010/11/zshell-prompt-for-git/ (which links to the Bash ones)

and the uber-set:
https://github.com/matthewmccullough/scripts
which includes all my OSS work for shell scripts.

As a command line productivity framework, I've become quite attached to oh-my-zsh. It has git-enhanced prompts galore.
https://github.com/robbyrussell/oh-my-zsh

GitHub (Hub) Plugin for Git:

https://github.com/defunkt/hub

Great GitHub help pages:

http://help.github.com

Office Hours:

Any follow up Git or GitHub questions can be asked in a desktop-sharing webinar and chat room:
https://github.com/training/free

References

Class Notes

Day 1 Command Line History

git config --global user.name
git config --global user.email
git config user.email
git config user.name
git config --global -e
git config --local -e
git config --global --list
git config --system --list
history
git config --global color.ui auto
pwd
git config color.ui
pwd
tr.git
cd scratch
cd newproject
rm -rf .git/hooks
vim caesar.txt
ls
git status
git add caesar.txt
git status
git commit -m "My first commit"
git status
ls
history
vi caesar.txt
git status
git add caesar.txt
git status
git commit -m "The noblest man"
git status
history
git status
vi caesar.txt
git status
git add caesar.txt
git status
vi caesar.txt
git status
git add caesar.txt
git status
git commit -m "Woe to the hands"
git config core.editor
git config --global core.editor emacs
echo monkey > monkey.txt
git add monkey.txt
git commit
git config --global --unset core.editor
git config --unset
git config core.editor
git status
git reset HEAD monkey.txt
git status
rm monkey.txt
git status
ls
vi caesar.txt
git diff
git add caesar.txt
git diff
git diff --staged
git status
vi caesar.txt
git status
git diff
git diff --staged
git diff --color-words
git diff --word-diff 
git status
git diff --staged
git diff
git commit -m "Ruby lips"
git stauts
git status
git add . 
git status
git diff --staged --word-diff
git commit -m "Iambic pentameter FTW"
git log
history
git log --stat
history
git log --patch
git log --patch --word-diff
history
git log --pretty=full
git log --pretty=fuller
git log --pretty=email
git log --pretty=email --patch
git log --pretty=raw
history
git log --pretty=raw -1
git log --pretty=raw -2
git config alias.lg
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --all
git loglive
vi ~/scripts/git-loglive
git loglive
history
ls
touch .gitconfig
ls -la
ls
echo "monkey" > monkey.log
mkdir build
ll ~ > build/files.class
echo "We <3 Git" build/love.class
git status
ll build
vi .gitconfig
ls -a
ls -la
git status
mv .gitconfig .gitignore
git status
git add . 
git status
git commit -m "Started strategically ignoring things"
tree
tree -a
tree
ll
rm monkey.log
generaterandomfiles 5 monkey txt
ll
git status
git add .
git commit -m "Five files marked for destruction"
git log --stat -1
l
ls
git rm monkey1.txt 
ls
git status
rm monkey2.txt
ls
git status
git rm monkey2.txt
git status
git commit -m "Deleted a couple of monkeys"
git status
ls
open . 
ls
git status
git add -u . 
git status
git commit -m "Deleted the rest of the monkeys"
git status
ls
git log --stat -3
history
ls -la
generaterandomfiles 5 file txt
ls -la ~ > listing.txt
ls -la
mkdir files
tree
git status
ls -la
git status
git add .
git commit -m "Created some files to support moving"
git mv file1.txt files/ 
tree
git status
mv file2.txt files/
tree
git status
git rm file2.txt
git add files/file2.txt
git status
open .
tree
git status
git add -A . 
git status
git commit -m "Moved all of the things"
git status
git log --stat -1
git log --stat -1 -M 
history
ll
vi listing.txt
mv listing.txt files/
git status
git add -A .
git status
git commit -m "Moved AND CHANGED a file, like we were crazy. Theseus will help."
git log --stat -M -1
git log --stat -M95 -1
git log --stat -M20 -1
history
git log
git show c1cceec 
git show c1cceec^ 
git log --pretty=raw
git status
git branch
git branch feature 
git branch
vi caesar.txt
git add .
git commit -m "Domestic fury"
cat caesar.txt
git checkout feature 
cat caesar.txt
git branch 
vi caesar.txt
git add .
git commit -m "Gave caesar a title"
git branch
cat caesar.txt
git checkout master
cat caesar.txt

Day 2 Command Line History

git clone https://github.com/githubstudent/training-repo-09-12

git diff HEAD HEAD~3
mkdir thousands
cd thousands
generaterandomfiles 9001 sample txt
git commit -m "Thousands of new files"
vim ../.git/config

echo CHANGES >> caesar.txt
git commit -m "Caesar say hi"
git pull
clear 
git branch feature1

touch thisfileisonlyonthebranch.txt
git commit -m "Only on the branch"
git checkout feature1

git diff master feature1
git diff master~2 feature1

git branch
git branch -a

git push -u origin feature1
git clone https://github.com/matthewmccullough/training-repo-09-12.git mytrainingrepo
echo CHANGE >> caesar.txt
git add caesar.txt
git commit -m "Changes"
git push 
git branch matthewmccfeature
git checkout matthewmccfeature
vim matthewmcc.txt
git commit -m"Matthew was here"
git push -u origin matthewmccfeature

git pull https://github.com/BlondeauEric/training-repo-09-12.git ericbfeature
git pull https://github.com/mmizgala/training-repo-09-12.git mmizgalafeature
git mergetool
git mergetool -t araxis
git commit
git push
touch lint.log
touch junk.txt
touch stuff.other
git clean 
git clean -n
git clean -f
git commit -m"Change one"
git commit -m"Change two"
vim caesar.txt
git commit -m"Change three"
git revert 6dbd100
cat caesar.txt
cd mytrainingrepo

git svn clone  http://ambientideas.unfuddle.com/svn/ambientideas_demo/trunk/ unfuddletrunkonly
cd unfuddletrunkonly
git log

git diff HEAD~3
echo CHANGES  >> sample5.txt
git status
git add .
git commit -m"Saves it from git"
git svn dcommit
svn
svn co https://github.com/githubstudent/training-repo-09-12.git/trunk icantbelieveitsnotbutter
cd icantbelieveitsnotbutter
svn info
clear
git tag THISISAGOODPOINT1
git tag THISISAGOODPOINT2 HEAD~7
git tag


git tag THISISAGOODPOINT3 c1ccec
git tag THISISAGOODPOINT3 c1cce
git push --tags
git checkout THISISAGOODPOINT3
cd ..
cd training-repo-09-12

git checkout THISISAGOODPOINT1
git tag -d THISISAGOODPOINT1
git branch feature99
git checkout feature99
git checkout master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.