Book description
- Behandelt die wichtigsten Szenarien und Problemfälle mit Git und wie man sie meistert* Keine umfassende Behandlung aller Git-Befehle (die man in der Praxis sowieso nicht braucht)
Table of contents
- 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 Projekts
- 3.7 Zusammenfassung
- 4 Commits zusammenstellen
- 4.1 Der Status-Befehl
- 4.2 Der 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 Swimlanes
- 6.5 Aktiver Branch
- 6.6 Branch-Zeiger 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 Konfliktmarkierungen
- 7.5 Bearbeitungskonflikte lösen
- 7.6 Und was ist mit den inhaltlichen Konflikten?
- 7.7 Fast-Forward-Merges
- 7.8 First-Parent-History
- 7.9 Knifflige Merge-Konflikte
- 7.10 Egal, es wird schon irgendwie gehen
- 7.11 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 Zusammenfassung
- 9 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 Remote-Tracking-Branches: 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: --rebase
- 9.9 Push – das Gegenstück zu Pull
- 9.10 Jeder so, wie er mag
- 9.11 Zusammenfassung
- 10 Versionen markieren
- 10.1 Arbeiten mit Tags erstellen
- 10.2 Welche Tags gibt es?
- 10.3 Die Hashes zu den Tags ausgeben
- 10.4 Die Log-Ausgaben um Tags anreichern
- 10.5 In welcher Version ist es »drin«?
- 10.6 Wie verschiebt man ein Tag?
- 10.7 Und wenn ich ein »Floating Tag« brauche?
- 10.8 Zusammenfassung
- 11 Abhängigkeiten zwischen Repositorys
- 11.1 Abhängigkeiten mit Submodulen
- 11.2 Abhängigkeiten mit Subtrees
- 11.3 Zusammenfassung
- 12 Tipps und Tricks
- 12.1 Keine Panik – Es gibt ein Reflog!
- 12.2 Lokale Änderungen temporär ignorieren
- 12.3 Änderungen an Textdateien untersuchen
- 12.4 alias – Abkürzungen für Git-Befehle
- 12.5 Branches als temporäre Zeiger auf Commits nutzen
- 12.6 Commits auf einen anderen Branch verschieben
- 13 Workflow-Einführung
- 13.1 Warum Workflows?
- 13.2 Welche Workflows sind wann sinnvoll?
- 13.3 Aufbau der Workflows
- 14 Ein Projekt aufsetzen
- Überblick
- Voraussetzungen
- Ein Projekt aufsetzen
- 14.1 Ablauf und Umsetzung
- 14.2 Warum nicht anders?
- 15 Gemeinsam auf einem Branch entwickeln
- Überblick
- Voraussetzungen
- Workflow kompakt
- Gemeinsam auf einem Branch entwickeln
- 15.1 Ablauf und Umsetzung
- 15.2 Warum nicht anders?
- 16 Mit Feature-Branches entwickeln
- Überblick
- Voraussetzungen
- Mit Feature-Branches entwickeln
- 16.1 Ablauf und Umsetzung
- 16.2 Warum nicht anders?
- 17 Mit Bisection Fehler suchen
- Überblick
- Voraussetzungen
- Mit Bisection Fehler suchen
- 17.1 Ablauf und Umsetzung
- 17.2 Warum nicht anders?
- 18 Mit einem Build-Server arbeiten
- Überblick
- Voraussetzungen
- Mit einem Build-Server arbeiten
- 18.1 Ablauf und Umsetzung
- 18.2 Warum nicht anders?
- 19 Ein Release durchführen
- Überblick
- Voraussetzungen
- 19.1 Ablauf und Umsetzung
- 19.2 Warum nicht anders?
- 20 Große Projekte aufteilen
- Überblick
- Voraussetzungen
- Große Projekte aufteilen
- 20.1 Ablauf und Umsetzung
- 20.2 Warum nicht anders?
- 21 Kleine Projekte zusammenführen
- Überblick
- Voraussetzungen
- Kleine Projekte zusammenführen
- 21.1 Ablauf und Umsetzung
- 21.2 Warum nicht anders?
- 22 Lange Historien auslagern
- Überblick
- Voraussetzungen
- Lange Historien auslagern
- 22.1 Ablauf und Umsetzung
- 22.2 Warum nicht anders?
- 23 Andere Versionsverwaltungen parallel nutzen
- Überblick
- Voraussetzungen
- Andere Versionsverwaltungen parallel nutzen
- 23.1 Ablauf und Umsetzung
- 23.2 Warum nicht anders?
- 24 Ein Projekt nach Git migrieren
- Überblick
- Voraussetzungen
- Ein Projekt nach Git migrieren
- 24.1 Ablauf und Umsetzung
- 24.2 Warum nicht anders?
- 25 Was gibt es sonst noch?
- 25.1 Interaktives Rebasing – Historie verschönern
- 25.2 Umgang mit Patches
- 25.3 Patches per Mail versenden
- 25.4 Bundles – Pull im Offline-Modus
- 25.5 Archive erstellen
- 25.6 Grafische Werkzeuge für Git
- 25.7 Repository im Webbrowser anschauen
- 25.8 Zusammenarbeit mit Subversion
- 25.9 Aliase für Befehle
- 25.10 Notizen an Commits
- 25.11 Hooks – Git erweitern
- 25.12 Github – Hosting von Repositorys
- 26 Das sechsundzwanzigste Kapitel
- 27 Grenzen von Git
- 27.1 Hohe Komplexität
- 27.2 Komplizierter Umgang mit Submodulen
- 27.3 Ressourcenverbrauch bei großen binären Dateien
- 27.4 Repositorys können nur vollständig verwendet werden
- 27.5 Autorisierung nur auf dem ganzen Repository
- 27.6 Mäßige grafische Werkzeuge für Historienauswertung
- Anhänge
- »Schritt für Schritt«-Anleitungen
- Workflow-Verzeichnis
- Ein Projekt aufsetzen
- Seite 111
- Gemeinsam auf einem Branch entwickeln
- Seite 127
- Mit Feature-Branches entwickeln
- Seite 135
- Mit Bisection Fehler suchen
- Seite 153
- Mit einem Build-Server arbeiten
- Seite 165
- Ein Release durchführen
- Seite 179
- Große Projekte aufteilen
- Seite 191
- Kleine Projekte zusammenführen
- Seite 199
- Lange Historien auslagern
- Seite 205
- Andere Versionsverwaltungen parallel nutzen
- Seite 215
- Ein Projekt nach Git migrieren
- Seite 227
- Index
Product information
- Title: Git, 2nd Edition
- Author(s):
- Release date: December 2013
- Publisher(s): dpunkt
- ISBN: 97833864901300
You might also like
book
Git, 4th Edition
Gits Vielfalt an Befehlen, Optionen und Konfigurationen wirkt anfangs oft einschüchternd. Dabei sind die Grundkonzepte einfach, …
book
Git, 5th Edition
Gits Vielfalt an Befehlen, Optionen und Konfigurationen wirkt anfangs oft einschüchternd. Dabei sind die Grundkonzepte einfach, …
book
Git for Programmers
Learn to track, branch, merge, and manage code revisions for real-world development scenarios Key Features Master …
book
Pro Git, Second Edition
Pro Git (Second Edition) is your fully-updated guide to Git and its usage in the modern …