Einführung
- Git im Vergleich zu anderen Version-Control-Systemen
- Grundkonzepte von Git: Commits, Branches, Repositories
- Hashes und dezentrale Commits
- Installation, Überblick git-Clients, git-Integration in IDEs
- Hintergrund: Was sind merkle trees?
Praktisches Arbeiten mit Git
- Konfiguration von Git
- Erzeugen von Git-Repositories, Klonen, Aufbau eines .git-Ordners
- Staging und Commits, Status von Dateien
- Versions-Log, Checkout von älteren Versionen
- Differenzen berechnen, Änderungen rückgängig machen, Reset und Revert
Branching und Remotes
- Erzeugen, Verwalten, Anzeigen, Wechseln, Löschen von Branches, HEAD-Pointer
- Merge von Branches, Konfliktlösungen, Fast-Forward vs. Merge-Commits
- Remote Repositories und Remote Branches
- Synchronisation mit Push, Fetch und Pull
Erweiterte Strategien
- Cherry-Picking von Commits
- Rebasing, Rebase vs. Merge: Vor- und Nachteile, typische Praxisfälle
- Branch-Modelle für größere Projekte
- Tools: Stashing, git blame, git reflog, git bisect
- Überblick: Github, Bitbucket und Gitlab für Teams