1. Einführung Git-Grundlagen Demo Kommando-Übersicht
Einführung in Git
TYPO3-Camp Stuttgart 2013
Andreas Wolf
SYN Systems GmbH
8. Juni 2013
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
2. Einführung Git-Grundlagen Demo Kommando-Übersicht
Inhalt I
Einführung
Git-Grundlagen
Demo
Kommando-Übersicht
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
3. Einführung Git-Grundlagen Demo Kommando-Übersicht
$ whois referent
Andreas Wolf
aw@syn-systems.com
Jabber: awolf@jabber.ccc.de
Twitter: @andreaswo
aus Karlsruhe, Baden(-Württemberg)
TYPO3-User seit 2003
Mitglied im TYPO3-Core-Team seit März 2011
Git-User seit Anfang 2010
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
4. Einführung Git-Grundlagen Demo Kommando-Übersicht
Was ist Git?
Verteiltes Versionskontrollsystem (DVCS)
ähnlich Mercurial, Bazaar, ...
entwickelt von Linus Torvalds für den Linux-Kernel
konzeptionell anders als SVN und andere zentrale Systeme ...
... aber keine Raketenwissenschaft :-)
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
5. Einführung Git-Grundlagen Demo Kommando-Übersicht
Unterschiede Git SVN
kein zentraler Server mehr... jedenfalls nicht zwingend
Branches und Tags als eigene Konzepte
ef zientere Datenablage
jede Kopie des Repositories (Klon) enthält die gesamte Historie
nichtlineare Geschichte des Repository
für Nerds: gerichteter azyklischer Graph
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
6. Einführung Git-Grundlagen Demo Kommando-Übersicht
Grundlagen
Git unterscheidet drei Bereiche:
gearbeitet wird in der sog. Working Copy
danach wandern die Daten in den Staging-Bereich
nach einem Commit sind sie im Repository
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
7. Einführung Git-Grundlagen Demo Kommando-Übersicht
Grundlagen
trunk ist kein spezieller Branch mehr → master in Git
jede Revision hat eine global eindeutige ID (SHA-1-Hash)
spezielle Marker: HEAD (aktuell ausgecheckte Revision)
vorherige Revisionen adressieren mit ^ (auch mehrfach) und ~n
Beispiele:
HEAD^ = HEAD~1: vorletzter Commit
HEAD~3 = HEAD^^^: viertletzer Commit
alternativ: <branch>@Datum
Beispiel: master@yesterday
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
8. Einführung Git-Grundlagen Demo Kommando-Übersicht
Drei Bereiche
Arbeitsbereich (working area)
Staging-Bereich
Repository
entfernte Repositories
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
9. Einführung Git-Grundlagen Demo Kommando-Übersicht
Eine einfache Geschichte
6f41653
bcdc32e
c82188f
7e5c009
672365d
initial commit
1234
master
HEAD
feature
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
10. Einführung Git-Grundlagen Demo Kommando-Übersicht
Lebenszyklus einer Änderung
Arbeitsbereich (working area)
Staging-Bereich
Repository
entfernte Repositories
git add
git commit
git push
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
12. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: eine (kleine) Übersicht
Brot und Butter : Grundlagen
Inspektion
Arbeiten mit Remotes
Änderungen zusammenführen
Verwaltung
. . . und noch viel mehr
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
13. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Brot und Butter I
add zum Index hinzufügen
Vorbereitung auf einen Commit
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
14. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Brot und Butter II
commit zum Repository hinzufügen
was vergessen? Inhalte anhängen mit amend
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
15. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Brot und Butter III
checkout Zweig auschecken
-b <Zweigname>: neuen Zweig mit diesem Namen anlegen (alternativ:
branch <NeuerName>)
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
16. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Brot und Butter IV
branch Zweige anlegen und verwalten
-m <neuerName> umbenennen
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
17. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Brot und Butter V
con g Kon guration bearbeiten
arbeitet standardmäÿig nur im lokalen Repository (auf .git/config)
--global setzt Optionen in ~/.gitconfig
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
18. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Inspektion I
Der TÜV
diff Änderungen anzeigen
Standard: Arbeitskopie vs. letzter Commit
diff <Ref> Änderungen Arbeitskopie vs. Ref anzeigen
diff <Ref1>..<Ref2> Änderungen zwischen Ref1 und Ref2
anzeigen
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
19. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Inspektion II
Der TÜV
status Zustand der Arbeitskopie
neue, geänderte, gelöschte Dateien
Zustand Index, Arbeitsbereich
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
20. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Inspektion III
Der TÜV
log Historie eines Zweigs
Interessante Parameter:
--pretty
--decorate
--graph
--format=[oneline,medium,fuller,...]
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
21. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Arbeiten mit Remotes I
Beam me up, Scotty
clone Kopie eines entfernten Repository anlegen
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
22. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Arbeiten mit Remotes II
Beam me up, Scotty
push zu entferntem Repository schieben
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
23. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Arbeiten mit Remotes III
Beam me up, Scotty
pull/fetch mit anderem Repository abgleichen
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
24. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: Arbeiten mit Remotes IV
Beam me up, Scotty
remote entfernte Repositories verwalten
Unterkommandos:
show
add
rename
...
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
25. Einführung Git-Grundlagen Demo Kommando-Übersicht
Änderungen zusammenführen I
merge Zweig mit aktuellem Zweig zusammenführen
Beispiele:
git merge origin/master
git merge kollege/coolesNeuesFeature
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
26. Einführung Git-Grundlagen Demo Kommando-Übersicht
Änderungen zusammenführen II
rebase lokale Änderungen auf neuen Stand aufsetzen
git rebase origin/master
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
27. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: verwalten I
branch Zweige verwalten
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
28. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: verwalten II
tag Tags anlegen und verwalten
tag <name> Tag von aktuellem HEAD anlegen
Wichtig: Pushen mit push --tags!
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
29. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: wenn's schiefging I
reset Arbeitskopie zurücksetzen
Standard: nur Index-Status zurücksetzen
mit - -hard komplette Arbeitskopie
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
30. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: wenn's schiefging II
re og verlorengegangenes zurückholen
z.B. nach Merges, Rebase, Checkout
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
31. Einführung Git-Grundlagen Demo Kommando-Übersicht
Kommandos: wenn's schiefging III
revert Commit rückgängig machen
Legt neuen Commit mit den inversen Änderungen an
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
32. Einführung Git-Grundlagen Demo Kommando-Übersicht
mehr nützliche Kommandos und Tools
git mergetool: geht Kon ikte durch, ruft ein Mergetool auf
tig: Text-mode interface for Git
gitweb: Web-Übersicht über Repos (wie auf git.typo3.org)
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
33. Einführung Git-Grundlagen Demo Kommando-Übersicht
mehr nützliche Kommandos und Tools
gra sche Werkzeuge
git gui: Standard-Werkzeug
gitk/gitg für Linux
TortoiseGit für Windows
Tower für MacOS
meld/kdiff3: gra sche Merge-Werkzeuge
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
34. Einführung Git-Grundlagen Demo Kommando-Übersicht
Mehr Informationen
http://wiki.typo3.org/Git_Gerrit
http://www.git-scm.com
http://gitref.org
Cheatsheets
Übersicht: http://help.github.com/git-cheat-sheets/
http://cheat.errtheblog.com/s/git
kostenloses Hosting:
http://github.com
http://bitbucket.org
Inhouse: http://gitlab.org
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share
36. Einführung Git-Grundlagen Demo Kommando-Übersicht
Lust auf Git bekommen?
Git-Schulungen inhouse bei euch und
(coming soon) bei uns in Karlsruhe.
Mehr Infos, Anfragen an mail@support.syn-systems.com
Einführung in Git Andreas Wolf, SYN Systems GmbH
Inspiring people to
share