Inhaltsverzeichnis; 1 Grundlegende Konzepte; 1.1 Dezentrale Versionsverwaltung
alles anders?; 1.2 Das Repository
die Grundlage dezentralen Arbeitens; 1.3 Branching und Merging
ganz einfach!; 1.4 Zusammenfassung; 2 Erste Schritte; 2.1 Git einrichten; 2.2 Das erste Projekt mit Git; 2.3 Zusammenarbeit mit Git; 2.4 Zusammenfassung; 3 Was sind Commits?; 3.1 Zugriffsberechtigungen und Zeitstempel; 3.2 Die Befehle add und commit; 3.3 Exkurs: Mehr über Commit-Hashes; 3.4 Eine Historie von Commits; 3.5 Eine etwas andere Sichtweise auf Commits.
3.6 Viele unterschiedliche Historien desselben Projekts3.7 Zusammenfassung; 4 Commits zusammenstellen; 4.1 Der Status-Befehl; 4.2 Stage-Bereich speichert Momentaufnahmen; 4.3 Was tun mit Änderungen, die nicht übernommen werden sollen?; 4.4 Mit .gitignore Dateien unversioniert lassen; 4.5 Stashing: Änderungen zwischenspeichern; 4.6 Zusammenfassung; 5 Das Repository; 5.1 Ein einfaches und effizientes Speichersystem; 5.2 Verzeichnisse speichern: Blob & Tree; 5.3 Gleiche Daten werden nur einmal gespeichert; 5.4 Kompression ähnlicher Inhalte.
5.5 Ist es schlimm, wenn verschiedene Daten zufällig denselben Hashwert bekommen?5.6 Commits; 5.7 Wiederverwendung von Objekten in der Commit-Historie; 5.8 Umbenennen, verschieben und kopieren; 5.9 Zusammenfassung; 6 Branches verzweigen; 6.1 Parallele Entwicklung; 6.2 Bugfixes in älteren Versionen; 6.3 Branches; 6.4 [s]Swimlane; 6.5 Aktiver Branch; 6.6 Branchzeiger umsetzen; 6.7 Branch löschen; 6.8 ... und was ist, wenn man die Commit-Objekte wirklich loswerden will?; 6.9 Zusammenfassung; 7 Branches zusammenführen; 7.1 Was passiert bei einem Merge?; 7.2 Konflikte; 7.3 Bearbeitungskonflikte.
7.4 Konfliktmarkierungen7.5 Bearbeitungskonflikte lösen; 7.6 Und was ist mit den inhaltlichen Konflikten?; 7.7 Fast-Forward-Merges; 7.8 Knifflige Merge-Conflikte; 7.9 Ach egal, wird schon irgendwie gehen; 7.10 Zusammenfassung; 8 Mit Rebasing die Historie glätten; 8.1 Das Prinzip: Kopieren von Commits; 8.2 "Diamantenketten" vermeiden; 8.3 ... und wenn es zu Konflikten kommt?; 8.4 Branches umpflanzen; 8.5 Was passiert mit den ursprünglichen Commits nach dem Rebasing?; 8.6 Warum ist es problematisch, Original und Kopie eines Commits im gleichen Repository zu haben?; 8.7 Cherry-Picking.
8.8 Zusammenfassung9 Austausch zwischen Repositorys; 9.1 Repositorys klonen; 9.2 Wie sagt man Git, wo das andere Repository liegt?; 9.3 Anderen Repositorys einen Namen geben; 9.4 Abholen von Daten; 9.5 [es]Remote-Tracking-Branch: Wissen, was in anderen Repositorys "los" ist; 9.6 Lokal mit Branches aus anderen Repositorys arbeiten; 9.7 Pull = Fetch + Merge; 9.8 Für Diamantenhasser:
das Gegenstück zu Pull; 9.10 Jeder, wie er mag; 9.11 Zusammenfassung; 10 Versionen markieren; 10.1 Arbeiten mit Tags erstellen; 10.2 Welche Tags gibt es?; 10.3 Die [es]Hash zu den Tags ausgeben.