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
Sei kein Blödmann und nimm Git!
Search
Stefan Imhoff
September 27, 2011
Education
200
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Sei kein Blödmann und nimm Git!
Intro to Git (in German).
Stefan Imhoff
September 27, 2011
Other Decks in Education
See All in Education
【セーフィー】テクニカルライティング&コミュニケーション実践講座(26新卒エンジニア向け研修資料)
ymzaki_m4
0
220
Lectura 1 (PIT : Python Basico)
robintux
0
360
면접관 눈에 띄는 데이터 분석 포트폴리오 만드는 법 | 2026년 5월 세미나
datarian
0
730
コミュニティを通じた_キャリア設計のススメ_20260424.pdf
masakiokuda
0
320
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
1.3k
現場最前線から教えるデータサイエンス1 -ITベンダーにおけるデータサイエンティスト-
hidetoshikawaguchi
0
110
Soluciones al examen de Geografía 2026. JUNIO (Convocatoria Ordinaria)
juanmartin2026
0
4k
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
280
2026年度春学期 統計学 第7回 データの関係を知る(2)ー 回帰と決定係数 (2026. 5. 21)
akiraasano
PRO
0
140
Catecismo 26 #1 - Aula inaugural
cm_manaus
0
180
The Art & Science of Elearning
tmiket
1
220
Case Studies - Lecture 12 - Information Visualisation (4019538FNR)
signer
PRO
0
140
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
Designing for Performance
lara
611
70k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Why Our Code Smells
bkeepers
PRO
340
58k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
YesSQL, Process and Tooling at Scale
rocio
174
15k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Transcript
Sei (k)ein Blödmann und nimm Git! Einführung in Versionskontrolle mit
Git Stefan Imhoff http://stefanimhoff.de 04.08.2009
Git /gɪt/ Nomen (Britisch, Slang) 1. Blödmann, Depp, Idiot
»Ich bin ein egoistischer Bastard und benenne alle meine Projekte
nach mir selbst. Zuerst Linux, jetzt Git.« – Linus Torvalds
Fakten & Statistiken Warum Git die Mitbewerber abhängt
Git Mercurial Bazaar 0,60 0,059 0,024 Init (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 2,381 0,368 8,535 Add (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 14,744 1,946 0,451 Status (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 14,248 2,189 0,543 Diff (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 1,892 1,201 0,056 Tag (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 9,055 2,65 0,711 Log (Sekunden) Quelle: Scott
Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 23,002 12,5 12,48 Commit, groß (Sekunden) Quelle:
Scott Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 1,139 0,517 0,086 Commit, klein (Sekunden) Quelle:
Scott Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 82,249 94,681 1,161 Branch, kalt (Sekunden) Quelle:
Scott Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar 39,411 12,3 0,07 Branch, heiß (Sekunden) Quelle:
Scott Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar Subversion 61 64 53 43 45 34
24 Repository (MB) Gesamtes Verzeichnis (MB) Quelle: Scott Chacon, whygitisbetterthanx.com
Git Mercurial Bazaar Subversion 64 311 144 119 Clone (Sekunden)
Quelle: Scott Chacon, whygitisbetterthanx.com
Theorie & Grundlagen Wer das versteht, ist klar im Vorteil
…
.git
None
SHA-I
Hallo, Welt!
8095a184a9b9ae8a14a0f0cde697c7f7cf1410e6
Meta-Informationen (Datum, Name, Ort)
Meta-Informationen (Datum, Name, Ort)
Meta-Informationen (Datum, Name, Ort)
Warum? • Konsistente Inhalte • Gleicher Inhalt = gleicher Blob
Objekte
• blobs • trees • commits • tags
Blobs
Dateiinhalte
Trees
• blobs • trees
Commits
• tree • parent • author • commiter • message
• datetime
Tags
• object • type • tagger • message
Konfiguration Sag mir wie du heißt, Baby!
git config
git config --global user.name "Stefan Imhoff" git config --global user.email
"
[email protected]
"
None
.gitignore
None
Tägliche Arbeit Business, not as usual
git clone
None
git init
None
git status
None
Working Directory Local
git add
None
Working Directory Staging Area Local
Working Directory Staging Area Local
Working Directory Staging Area git add Local
None
git commit
None
Working Directory Staging Area Local Repository git add Local
Working Directory Staging Area Local Repository git add Local
Working Directory Staging Area Local Repository git add git commit
Local
master
git log
None
None
git rm
None
None
git diff
None
git branch
None
None
None
master neuerzweig
git checkout
None
None
None
Working Directory Staging Area Local Repository git add git commit
Local
Working Directory Staging Area Local Repository git add git commit
Local
Working Directory Staging Area Local Repository git add git commit
git checkout Local
git merge
None
Working Directory Staging Area Local Repository git add git commit
git checkout Local
Working Directory Staging Area Local Repository git add git commit
git checkout Local
Working Directory Staging Area Local Repository git add git commit
git checkout git merge Local
master neuerzweig
None
git tag
None
Probleme & Wartung Keine Panik auf der Titanic
git commit --amend
None
None
git checkout
None
git reset
None
git blame
None
git revert
None
git mergetool
None
None
git bisect
None
Bad Good ?
Bad Good Good ?
Bad Good Good Bad ?
git gc
None
Remote E.T. nach Hause telefonieren
Lokales Repository veröffentlichen
None
None
None
None
git remote
None
None
git fetch
None
None
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout git merge Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout git merge Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git fetch git checkout git merge Local Remote
git pull
None
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git fetch git checkout Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git fetch git checkout Local Remote
Working Directory Staging Area Local Repository Remote Repository git add
git commit git fetch git checkout git merge Local Remote
git push
None
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout git merge Local Remote git fetch
Working Directory Staging Area Local Repository Remote Repository git add
git commit git checkout git merge Local Remote git fetch
Working Directory Staging Area Local Repository Remote Repository git add
git commit git push git checkout git merge Local Remote git fetch
git submodules
None
None
None
Profi-Techiken Der Wuxi-Fingergriff von Git
Leere Branches anlegen
None
History verändern
None
git svn
None
git svn rebase git svn dcommit
git instaweb
None
None
git stash
None
None
None
Klicki-Bunti Aber gibt’s dat auch für Maus?
Git Gui
None
None
None
Git Extensions
None
None
TortoiseGit
None
None
None
None
None
None
GitK
None
GitX
None
None
Und los geht’s … Bereit Versionsgeschichte zu schreiben?
Vielen Dank!
Eingesetzte Fotos Die in dieser Präsentation eingesetzten Fotos stammen von
iStockphoto. 8916384 7941768 3391085 1945196 5823044 2699704 7952299 3142537 7420635 7692057 4144887
Eingesetzte Schriften Delicious http://www.josbuivenga.demon.nl/delicious.html Baskerville (&)
Fragen & Antworten