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
3
190
Sei kein Blödmann und nimm Git!
Intro to Git (in German).
Stefan Imhoff
September 27, 2011
Tweet
Share
Other Decks in Education
See All in Education
アントレプレナーシップ教育 ~ 自分で自分の幸せを決めるために ~
yoshizaki
0
130
(キラキラ)人事教育担当のつらみ~教育担当として知っておくポイント~
masakiokuda
0
110
2025/06/05_読み漁り学習
nag8
0
150
Open Source Summit Japan 2025のボランティアをしませんか
kujiraitakahiro
0
740
データ分析
takenawa
0
7.4k
Gamified Interventions for Composting Behavior: A Case Study Using the Gamiflow Framework in a Workplace Setting
ezefranca
1
140
Human-AI Interaction - Lecture 11 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
470
Avoin jakaminen ja Creative Commons -lisenssit
matleenalaakso
0
1.9k
2025年度春学期 統計学 第6回 データの関係を知る(1)ー相関関係 (2025. 5. 15)
akiraasano
PRO
0
100
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019538FNR)
signer
PRO
1
2k
生成AIとの上手な付き合い方【公開版】/ How to Get Along Well with Generative AI (Public Version)
handlename
0
500
ふりかえり研修2025
pokotyamu
0
1.2k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Docker and Python
trallard
45
3.5k
Bash Introduction
62gerente
613
210k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
It's Worth the Effort
3n
185
28k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Adopting Sorbet at Scale
ufuk
77
9.5k
A better future with KSS
kneath
238
17k
Why Our Code Smells
bkeepers
PRO
336
57k
Designing for Performance
lara
610
69k
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