Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Git In A Tree
Search
Daniel Öberg
November 13, 2011
Programming
380
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git In A Tree
An illustrated guide to Git
Daniel Öberg
November 13, 2011
Other Decks in Programming
See All in Programming
Railsバージョンを4倍にした話
optim
0
830
Spec-driven Development with AI
simas
PRO
0
2.2k
ActionController meets Protocol Buffers
sorah
1
750
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
210
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
200
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
280
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
220
Next.js: The final boss of Web Performance
guaca
0
360
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
290
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
130
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
340
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
120
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
860
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
410
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Thoughts on Productivity
jonyablonski
76
5.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
770
Chasing Engaging Ingredients in Design
codingconduct
0
380
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
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]