O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Git, 3rd Edition

Book Description

Gits Vielfalt an Befehlen, Optionen und Konfigurationen wirkt anfangs oft einschüchternd. Dabei sind die Grundkonzepte einfach, im Alltag benötigt man nur wenige Befehle.»Git« gibt daher zunächst eine kompakte Einführung in die wichtigen Konzepte und Befehle und beschreibt dann ausführlich deren Anwendung in typischen Workflows, z.B. »Mit Feature-Branches entwickeln« oder »Ein Release durchführen«. Neu in der 3. Auflage: ein Kapitel zur Integration mit dem Build-Server Jenkins sowie Workflows zu Continuous Delivery sowie zur parallelen Pflege mehrere Release-Versionen eines Produkts.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
  5. Kapitel 1: Grundlegende Konzepte
    1. 1.1 Dezentrale Versionsverwaltung - alles anders?
    2. 1.2 Das Repository-die Grundlage dezentralen Arbeitens
    3. 1.3 Branching und Merging - ganz einfach!
    4. 1.4 Zusammenfassung
  6. Kapitel 2: Erste Schritte mit der Kommandozeile
    1. 2.1 Git einrichten
    2. 2.2 Das erste Projekt mit Git
    3. 2.3 Zusammenarbeit mit Git
    4. 2.4 Zusammenfassung
  7. Kapitel 3: Erste Schritte mit SourceTree
    1. 3.1 SourceTree konfigurieren
    2. 3.2 Das erste Projekt mit Git
    3. 3.3 Zusammenarbeit mit Git
    4. 3.4 Zusammenfassung
  8. Kapitel 4: Was sind Commits?
    1. 4.1 Zugriffsberechtigungen und Zeitstempel
    2. 4.2 Die Befehle add und commit
    3. 4.3 Exkurs: Mehr über Commit-Hashes
    4. 4.4 Eine Historie von Commits
    5. 4.5 Eine etwas andere Sichtweise auf Commits
    6. 4.6 Viele unterschiedliche Historien desselben Projekts
    7. 4.7 Zusammenfassung
  9. Kapitel 5: Commits zusammenstellen
    1. 5.1 Der status-Befehl
    2. 5.2 Der Stage-Bereich speichert Momentaufnahmen
    3. 5.3 Was tun mit Änderungen, die nicht übernommen werden sollen?
    4. 5.4 Mit .gitignore Dateien unversioniert lassen
    5. 5.5 Stashing: Änderungen zwischenspeichern
    6. 5.6 Zusammenfassung
  10. Kapitel 6: Das Repository
    1. 6.1 Ein einfaches und effizientes Speichersystem
    2. 6.2 Verzeichnisse speichern: Blob und Tree
    3. 6.3 Gleiche Daten werden nur einmal gespeichert
    4. 6.4 Kompression ähnlicher Inhalte
    5. 6.5 Ist es schlimm, wenn verschiedene Daten zufällig denselben Hashwert bekommen?
    6. 6.6 Commits
    7. 6.7 Wiederverwendung von Objekten in der Commit-Historie
    8. 6.8 Umbenennen, verschieben und kopieren
    9. 6.9 Zusammenfassung
  11. Kapitel 7: Branches verzweigen
    1. 7.1 Parallele Entwicklung
    2. 7.2 Bugfixes in älteren Versionen
    3. 7.3 Branches
    4. 7.4 Aktiver Branch
    5. 7.5 Branch-Zeiger umsetzen
    6. 7.6 Branch löschen
    7. 7.7 Und was ist, wenn man die Commit-Objekte wirklich loswerden will?
    8. 7.8 Zusammenfassung
  12. Kapitel 8: Branches zusammenführen
    1. 8.1 Was passiert bei einem Merge?
    2. 8.2 Konflikte
    3. 8.3 Fast-Forward-Merges
    4. 8.4 First-Parent-History
    5. 8.5 Knifflige Merge-Konflikte
    6. 8.6 Zusammenfassung
  13. Kapitel 9: Mit Rebasing die Historie glätten
    1. 9.1 Das Prinzip: Kopieren von Commits
    2. 9.2 Und wenn es zu Konflikten kommt?
    3. 9.3 Branches umpflanzen
    4. 9.4 Was passiert mit den ursprünglichen Commits nach dem Rebasing?
    5. 9.5 Cherry-Picking
    6. 9.6 Zusammenfassung
  14. Kapitel 10: Repositorys erstellen, klonen und verwalten
    1. 10.1 Ein Repository erstellen
    2. 10.2 Das Repository-Layout
    3. 10.3 Bare-Repositorys
    4. 10.4 Vorhandene Dateien übernehmen
    5. 10.5 Ein Repository klonen
    6. 10.6 Wie sagt man Git, wo das Remote-Repository liegt?
    7. 10.7 Kurznamen für Repositorys: Remotes
    8. 10.8 Zusammenfassung
  15. Kapitel 11: Austausch zwischen Repositorys
    1. 11.1 Fetch, Pull und Push
    2. 11.2 Remote-Tracking-Branches
    3. 11.3 Einen Remote-Branch bearbeiten
    4. 11.4 Ein paar Begriffe, die man kennen sollte
    5. 11.5 Fetch: Branches aus einem anderen Repository holen
    6. 11.6 Fetch: Aufrufvarianten
    7. 11.7 Erweiterte Möglichkeiten
    8. 11.8 Zusammenfassung
  16. Kapitel 12: Versionen markieren
    1. 12.1 Arbeiten mit Tags erstellen
    2. 12.2 Welche Tags gibt es?
    3. 12.3 Die Hashes zu den Tags ausgeben
    4. 12.4 Die Log-Ausgaben um Tags anreichern
    5. 12.5 In welcher Version ist es »drin«?
    6. 12.6 Wie verschiebt man ein Tag?
    7. 12.7 Und wenn ich ein »Floating Tag« brauche?
    8. 12.8 Zusammenfassung
  17. Kapitel 13: Abhängigkeiten zwischen Repositorys
    1. 13.1 Abhängigkeiten mit Submodulen
    2. 13.2 Abhängigkeiten mit Subtrees
    3. 13.3 Zusammenfassung
  18. Kapitel 14: Tipps und Tricks
    1. 14.1 Keine Panik – Es gibt ein Reflog!
    2. 14.2 Lokale Änderungen temporär ignorieren
    3. 14.3 Änderungen an Textdateien untersuchen
    4. 14.4 alias - Abkürzungen für Git-Befehle - Abkürzungen für Git-Befehle
    5. 14.5 Branches als temporäre Zeiger auf Commits nutzen
    6. 14.6 Commits auf einen anderen Branch verschieben
    7. 14.7 Mehr Kontrolle bei Fetch, Push und Pull
  19. Kapitel 15: Workflow-Einführung
    1. 15.1 Warum Workflows?
    2. 15.2 Welche Workflows sind wann sinnvoll?
    3. 15.3 Aufbau der Workflows
  20. Kapitel 16: Ein Projekt aufsetzen
  21. Kapitel 17: Gemeinsam auf einem Branch entwickeln
  22. Kapitel 18: Mit Feature-Branches entwickeln
  23. Kapitel 19: Mit Bisection Fehler suchen
  24. Kapitel 20: Kontinuierlich Releases durchführen
  25. Kapitel 21: Periodisch Releases durchführen
  26. Kapitel 22: Mit mehreren aktiven Releases arbeiten
  27. Kapitel 23: Große Projekte aufteilen
  28. Kapitel 24: Kleine Projekte zusammenführen
  29. Kapitel 25: Lange Historien auslagern
  30. Kapitel 26: Das sechsundzwanzigste Kapitel
  31. Kapitel 27: Andere Versionsverwaltungen parallel nutzen
  32. Kapitel 28: Ein Projekt nach Git migrieren
  33. Kapitel 29: Integration mit Jenkins
    1. 29.1 Vorbereitungen
    2. 29.2 Ein einfaches Git-Projekt einrichten
    3. 29.3 Hook als Build-Auslöser
    4. 29.4 Ein Tag für jeden erfolgreichen Build
    5. 29.5 Pull-Requests bauen
    6. 29.6 Automatischer Merge von Branches
  34. Kapitel 30: Was gibt es sonst noch?
    1. 30.1 Interaktives Rebasing - Historie verschönern
    2. 30.2 Umgang mit Patches
    3. 30.3 Patches per Mail versenden
    4. 30.4 Bundles - Pull im Offline-Modus
    5. 30.5 Archive erstellen
    6. 30.6 Grafische Werkzeuge für Git
    7. 30.7 Repository im Webbrowser anschauen
    8. 30.8 Zusammenarbeit mit Subversion
    9. 30.9 Notizen an Commits
    10. 30.10 Hooks - Git erweitern
    11. 30.11 Github - Hosting von Repositorys
  35. Kapitel 31: Die Grenzen von Git
    1. 31.1 Hohe Komplexität
    2. 31.2 Komplizierter Umgang mit Submodulen
    3. 31.3 Ressourcenverbrauch bei großen binären Dateien
    4. 31.4 Repositorys können nur vollständig verwendet werden
    5. 31.5 Autorisierung nur auf dem ganzen Repository
    6. 31.6 Mäßige grafische Werkzeuge für die Historienauswertung
  36. Anhang
    1. »Schritt für Schritt«-Anleitungen
    2. Workflow-Verzeichnis
  37. Index
  38. Fußnoten