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, 4th 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«.Die 4. Auflage wurde komplett aktualisiert und bezieht nun durchgehend die Nutzung von Plattformen wie GitHub oder Bitbucket mit ein. Neue Workflows behandeln die Entwicklung mit Forks sowie die die LFS-Erweiterung zur Versionierung groß er Binärdateien.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
  5. Inhaltsverzeichnis
  6. Erste Schritte
    1. 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
    2. 2 Erste Schritte mit der Kommandozeile
      1. 2.1 Git einrichten
      2. 2.2 Ein paar Hinweise für Windows-User
      3. 2.3 Git einrichten
      4. 2.4 Das erste Projekt mit Git
      5. 2.5 Zusammenarbeit mit Git
      6. 2.6 Zusammenfassung
    3. 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
  7. Arbeiten mit Git
    1. 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
    2. 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
    3. 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
    4. 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
    5. 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
    6. 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 Was passiert mit den ursprünglichen Commits nach dem Rebasing?
      4. 9.4 Empfehlungen zum Rebasing
      5. 9.5 Cherry-Picking
      6. 9.6 Zusammenfassung
    7. 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
    8. 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
    9. 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
    10. 13 Tipps und Tricks
      1. 13.1 Keine Panik – es gibt ein Reflog!
      2. 13.2 Lokale Änderungen temporär ignorieren
      3. 13.3 Änderungen an Textdateien untersuchen
      4. 13.4 alias – Abkürzungen für Git-Befehle
      5. 13.5 Branches als temporäre Zeiger auf Commits nutzen
      6. 13.6 Commits auf einen anderen Branch verschieben
      7. 13.7 Mehr Kontrolle bei Fetch, Push und Pull
  8. Workflows
    1. 14 Workflow-Einführung
      1. 14.1 Warum Workflows?
      2. 14.2 Welche Workflows sind wann sinnvoll?
      3. 14.3 Aufbau der Workflows
  9. Workflows: Entwickeln mit Git
    1. 15 Ein Projekt aufsetzen
    2. 16 Gemeinsam auf einem Branch entwickeln
    3. 17 Mit Feature-Branches entwickeln
    4. 18 Mit Forks entwickeln
  10. Workflows: Release-Prozess
    1. 19 Kontinuierlich Releases durchführen
    2. 20 Periodisch Releases durchführen
    3. 21 Mit mehreren aktiven Releases arbeiten
  11. Workflows: Repositorys pflegen
    1. 22 Ein Projekt mit großen binären Dateien versionieren
    2. 23 Große Projekte aufteilen
    3. 24 Kleine Projekte zusammenführen
    4. 25 Lange Historien auslagern
    5. 26 http://kapitel26.github.io
    6. 27 Ein Projekt nach Git migrieren
  12. Mehr über Git
    1. 28 Integration mit Jenkins
      1. 28.1 Vorbereitungen
      2. 28.2 Ein einfaches Git-Projekt einrichten
      3. 28.3 Hook als Build-Auslöser
      4. 28.4 Ein Tag für jeden erfolgreichen Build
      5. 28.5 Pull-Requests bauen
      6. 28.6 Automatischer Merge von Branches
    2. 29 Abhängigkeiten zwischen Repositorys
      1. 29.1 Abhängigkeiten mit Submodulen
      2. 29.2 Abhängigkeiten mit Subtrees
      3. 29.3 Zusammenfassung
    3. 30 Was gibt es sonst noch?
      1. 30.1 Worktrees – mehrere Workspaces mit einem Repository
      2. 30.2 Interaktives Rebasing – Historie verschönern
      3. 30.3 Umgang mit Patches
      4. 30.4 Archive erstellen
      5. 30.5 Grafische Werkzeuge für Git
      6. 30.6 Repository im Webbrowser anschauen
      7. 30.7 Zusammenarbeit mit Subversion
      8. 30.8 Hooks – Git erweitern
      9. 30.9 Mit Bisection Fehler suchen
    4. 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
  13. Anhang
  14. Schritt-für-Schritt-Anleitungen
  15. Workflow-Verzeichnis
  16. Index