Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git In A Tree
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Daniel Öberg
November 13, 2011
Programming
7
360
Git In A Tree
An illustrated guide to Git
Daniel Öberg
November 13, 2011
Tweet
Share
Other Decks in Programming
See All in Programming
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
13
7.6k
Oxlint JS plugins
kazupon
1
1.2k
atmaCup #23でAIコーディングを活用した話
ml_bear
4
720
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
340
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
1
370
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
130
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
190
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
2.2k
SourceGeneratorのマーカー属性問題について
htkym
0
110
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
100
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
150
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
72k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
480
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Between Models and Reality
mayunak
2
210
Scaling GitHub
holman
464
140k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
67
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Site-Speed That Sticks
csswizardry
13
1.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Transcript
Git Sitting In A Tree An illustrated guide to Git.
Nothingness git init
Nothingness echo “Duck” > README.txt README.txt
Tell git about our duck git add README.txt Staging Area
README.txt Duck
Save git commit -m “I wrote ‘Duck’ into README.txt” Staging
Area README.txt Duck Commit commit message
Save git commit -m “I wrote ‘Donald Duck’ into README.txt”
Staging Area README.txt Duck Commit Duck
Why not directly? README.txt Duck Commit Duck
Git hates us README.txt Duck Commit Duck
Git hates us Git has opinions
“If you deny the Index [staging area], you really deny
git itself.” - Linus Torvalds
Reason Splits your code into two sections: Code that has
been reviewed for a commit Code that hasn’t
Reason Splits your code into two sections: Code in the
staging area Code not in the staging area
Example I implemented both a new feature and a bug-fix
and forgot to commit them.
I’m happily coding echo "bug-fix" >> README.txt echo "new feature"
>> README.txt cat README.txt duck bug-fix new feature
Committing the feature only git add --patched README.txt && git
commit -m “Feature added” Staging Area README.txt new feature Commit Duck new feature new feature
Seeing what’s left git diff @@ -1,2 +1,3 @@ duck
+bug-fix new feature Really, really useful
Committing that git add README.txt && git commit -m “Bug
squashed” Staging Area README.txt bug-fix Commit Duck new feature bug-fix bug-fix
Send Specific Patch Now I can freely choose to send
a patch that contains only the bug-fix to my boss (he can have the new feature on his birthday). Duck new feature bug-fix
Remove Specific Patch ‘New feature’ might have contained a serious
bug. I can the remove the new feature without touching the bug-fix. Amazing, you say. Duck new feature bug-fix
Take A Sip Of Coffee
Again
Staging Area/Index We always commit by first adding or removing
files to the Index
git add Adds files content to the staging area. Staging
Area README.txt Duck
git add --patch Adds some part (it will ask you)
of the files to the staging area. Staging Area README.txt new feature
git rm Removes all the files content from the staging
area. Staging Area README.txt Duck
git diff Shows the difference between the staging area and
the working directory. Staging Area README.txt Diff
git commit -m “msg” Commit file content in staging area
with a description/message Staging Area README.txt Commit *
Good Work
Gotchas
git add Git has a list of files. By running
git add you also append the filenames given to this list. Nasty, nasty, nasty. Lots of confusion from this feature.
git commit -a This is the reason for tracking the
files. By adding an -a you tell git to add all its tracked files file contents to the staging area and then commit it all.
And A Lie
Staging Area What we call a staging area, Git officially
calls the Index.
Thanks for listening
United Lambdas Daniel Öberg
[email protected]