git inception

51
GIT INCEPTION nick quaranto http://capeco.de Thursday, August 19, 2010

description

a few git tips and tricks

Transcript of git inception

Page 1: git inception

GIT INCEPTIONnick quaranto

http://capeco.de

Thursday, August 19, 2010

Page 2: git inception

SHARE CODE LOCALLY

gem install bananajour

Thursday, August 19, 2010

Page 3: git inception

Thursday, August 19, 2010

Page 4: git inception

Thursday, August 19, 2010

Page 5: git inception

Thursday, August 19, 2010

Page 6: git inception

RECAP

gem install bananajour

cd repo; bananajour init

git push banana master

bananajour

Thursday, August 19, 2010

Page 7: git inception

SQUASH COMMITS

Thursday, August 19, 2010

Page 8: git inception

Thursday, August 19, 2010

Page 9: git inception

Thursday, August 19, 2010

Page 10: git inception

Thursday, August 19, 2010

Page 11: git inception

Thursday, August 19, 2010

Page 12: git inception

Thursday, August 19, 2010

Page 13: git inception

Thursday, August 19, 2010

Page 14: git inception

Thursday, August 19, 2010

Page 15: git inception

Thursday, August 19, 2010

Page 16: git inception

RECAP

git checkout topic

git rebase -i master

(keep top patch as “pick”, rest “squash”)

git checkout master

git merge topic

Thursday, August 19, 2010

Page 17: git inception

SHORTEN YOUR STATUS

Thursday, August 19, 2010

Page 18: git inception

Thursday, August 19, 2010

Page 19: git inception

Thursday, August 19, 2010

Page 20: git inception

RECAP

git status -sb

git config --global alias.st "status -sb"

git st

Thursday, August 19, 2010

Page 21: git inception

INCREMENTALLY STAGE CODE

Thursday, August 19, 2010

Page 22: git inception

FFFFUUUUUUUUUUThursday, August 19, 2010

Page 23: git inception

Thursday, August 19, 2010

Page 24: git inception

Thursday, August 19, 2010

Page 25: git inception

Thursday, August 19, 2010

Page 26: git inception

Thursday, August 19, 2010

Page 27: git inception

Thursday, August 19, 2010

Page 28: git inception

RECAPgit add -p

y: stage this hunk

n: skip this hunk

s: split this hunk

e: manually edit this hunk

g: move around to other hunks

?: view help

Thursday, August 19, 2010

Page 29: git inception

SPRING CLEANING

git remote prune origin

git gc --aggressive

git stash clear

Thursday, August 19, 2010

Page 30: git inception

WHO BROKE THE BUILD

git blame path/to/file.rb

Thursday, August 19, 2010

Page 31: git inception

Thursday, August 19, 2010

Page 32: git inception

WE MUST GO DEEPER

Thursday, August 19, 2010

Page 33: git inception

WHERE DID THAT LINE COME FROM

git blame -C path/to/file.rb

Thursday, August 19, 2010

Page 34: git inception

Thursday, August 19, 2010

Page 35: git inception

WE MUST GO EVEN DEEPER

Thursday, August 19, 2010

Page 36: git inception

DIVE THROUGH INTERACTIVELY

git gui blame path/to/file.rb

Thursday, August 19, 2010

Page 37: git inception

CHANGE COMMIT MESSAGES

Thursday, August 19, 2010

Page 38: git inception

Thursday, August 19, 2010

Page 39: git inception

Thursday, August 19, 2010

Page 40: git inception

Thursday, August 19, 2010

Page 41: git inception

RECAP

last commit:

git commit --amend

several back:

git rebase -i <treeish>

(change pick to reword)

Thursday, August 19, 2010

Page 42: git inception

SEE FILES FROM OTHER BRANCHES

git show <treeish>:path/to/file.rb

git show <treeish>:

Thursday, August 19, 2010

Page 43: git inception

Thursday, August 19, 2010

Page 44: git inception

Thursday, August 19, 2010

Page 45: git inception

DIFF BETTER

Thursday, August 19, 2010

Page 46: git inception

Thursday, August 19, 2010

Page 47: git inception

git diff | gitx

Thursday, August 19, 2010

Page 48: git inception

ANNOTATE EXISTING COMMITS

Thursday, August 19, 2010

Page 49: git inception

Thursday, August 19, 2010

Page 50: git inception

RECAP

git notes add -m “some info”

git notes show

git notes append -m “more info”

git log -p

Thursday, August 19, 2010

Page 51: git inception

THANKS

Thursday, August 19, 2010