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

Versionsverwaltung mit Git - Praxiseinstieg

Book Description

  • Von grundlegenden Befehlen über Branches und Remote-Repositories bis zur Verwendung von Git-Hooks
  • Auswahl sinnvoller Workflows und Einsatz von Git für Software-Entwicklungsteams
  • Git-Repositories hosten mit GitHub und GitLab

Viele Software-Entwickler oder Systemadministratoren haben Git bereits im Einsatz – sowohl im Firmenumfeld als auch in Open-Source-Projekten. Zum Einstieg lernen Anfänger häufig nur die wichtigsten Befehle, die schnell nicht mehr ausreichen, vor allem wenn die ersten Fehler auftreten. Dieses Buch behandelt einerseits die gängigen Befehle, die Sie beim täglichen Arbeiten mit Git brauchen. Andererseits geht es dem Autor auch darum, dass Sie Git als Ganzes verstehen, um es effektiv im Entwicklungsprozess einsetzen zu können.

Der Fokus des Buches liegt auf dem praktischen Arbeiten mit Git. Sie lernen anhand eines kleinen Beispielprojektes, welche Befehle es gibt, wie diese arbeiten und wie Sie auftretende Probleme lösen können. Neben den Funktionen, die Sie täglich brauchen, finden Sie auch eher seltener gebrauchte Kommandos, die aber ebenfalls wichtig sind. Dabei legt der Autor auch großen Wert auf die Einbindung und Anpassung des Entwicklungsprozesses.

Im zweiten Teil des Buches werden fortgeschrittene Themen behandelt. Dabei liegt der Schwerpunkt auf dem Einsatz von Git in Software-Entwicklungsteams. Hier geht es um das Hosten verteilter Repositories mit GitHub und GitLab. Ein weiteres Kapitel behandelt die verschiedenen Workflows je nach Anzahl der beteiligten Personen, Branches und Repositories eines Projektes. Außerdem werden Git-Hooks behandelt und deren Programmierung sowie das automatisierte Prüfen simpler Fehler.

Darüber hinaus gibt der Autor Tipps und Hinweise für den Umstieg von Subversion sowie einen Überblick über verschiedene grafische Git-Programme.

Das Buch richtet sich nicht nur an Einsteiger, die sich noch nie mit Git beschäftigt haben, auch Umsteiger und Leser mit vorhandenen Kenntnissen erhalten viele weiterführende Informationen.

Aus dem Inhalt:
  • Konfiguration
  • Arbeiten mit Branches
  • Verteilte Repositories
  • Hosting mit GitHub und GitLab
  • Workflows
  • Hooks
  • Umstieg von Subversion
  • Zahlreiche Tipps für die tägliche Arbeit
  • Grafische Clients
  • Befehlsreferenz

Table of Contents

  1. Impressum
  2. Danksagung
  3. Einleitung
  4. Kapitel 1: Einführung
    1. 1.1 Versionsverwaltung ​
      1. 1.1.1 Lokale Versionsverwaltung
      2. 1.1.2 Zentrale Versionsverwaltung
      3. 1.1.3 Verteilte Versionsverwaltung
    2. 1.2 Geschichtliches​
  5. Kapitel 2: Die Grundlagen
    1. 2.1 Installation ​
    2. 2.2 Das erste Repository​
    3. 2.3 Git-Konfiguration ​
    4. 2.4 Der erste Commit
      1. 2.4.1 Versionierte Dateien mit »git mv« verschieben​
    5. 2.5 Änderungen rückgängig machen mit Reset und Revert
      1. 2.5.1 Revert​
      2. 2.5.2 Reset
    6. 2.6 Git mit GUI ​
      1. 2.6.1 Commits mit Git GUI
    7. 2.7 Wie Git arbeitet​
    8. 2.8 Git-Hilfe ​
    9. 2.9 Zusammenfassung
  6. Kapitel 3: Arbeiten mit Branches​
    1. 3.1 Allgemeines zum Branching​
    2. 3.2 Branches anlegen
    3. 3.3 Branches mergen ​
    4. 3.4 Merge-Konflikte ​
    5. 3.5 Mergetools ​
    6. 3.6 Merge-Strategien​
      1. 3.6.1 resolve ​
      2. 3.6.2 recursive ​
      3. 3.6.3 octopus ​
      4. 3.6.4 ours ​
      5. 3.6.5 subtree ​
    7. 3.7 Rebasing ​
    8. 3.8 Stash und Clean​
      1. 3.8.1 Den Arbeitsordner säubern​
      2. 3.8.2 Dateien ignorieren ​
    9. 3.9 Zusammenfassung
  7. Kapitel 4: Verteilte Repositories
    1. 4.1 Projekt mit einem Remote-Repository
    2. 4.2 Branch-Management​
    3. 4.3 Tracking-Branches ​
    4. 4.4 Projekt mit drei Remote-Repositories
    5. 4.5 Der Workflow mit drei Repositories​
    6. 4.6 Zusammenfassung
  8. Kapitel 5: Git-Hosting​
    1. 5.1 GitHub​
      1. 5.1.1 Repository anlegen​
      2. 5.1.2 SSH-Keys anlegen und hinzufügen​
      3. 5.1.3 SSH-Agent konfigurieren​
      4. 5.1.4 Lokales Git-Repository konfigurieren
      5. 5.1.5 Repository klonen​
      6. 5.1.6 Der GitHub-Workflow​
      7. 5.1.7 GitHub-Repositories um externe Tools erweitern​
    2. 5.2 GitLab ​
      1. 5.2.1 Installation​
      2. 5.2.2 Konfiguration
    3. 5.3 gitolite ​
    4. 5.4 Weitere Git-Hosting-Lösungen​
    5. 5.5 3rd-Party-Tools für Continuous Integration
      1. 5.5.1 Der Workflow
      2. 5.5.2 Jenkins ​
      3. 5.5.3 Travis-CI​
      4. 5.5.4 GitLab-CI​
    6. 5.6 Zusammenfassung
  9. Kapitel 6: Workflows​
    1. 6.1 Interaktives Rebasing​
      1. 6.1.1 Branches pseudo-sichern
      2. 6.1.2 Den letzten Commit verändern​
      3. 6.1.3 Mehrere Commits verändern
      4. 6.1.4 Reihenfolge der Commits anpassen​
      5. 6.1.5 Commits ergänzen​
      6. 6.1.6 Commits squashen​
      7. 6.1.7 Commits autosquashen ​
      8. 6.1.8 Commits droppen​
      9. 6.1.9 Commit aufteilen​
    2. 6.2 Workflow mit einem Branch und Repository für eine Person
    3. 6.3 Workflow mit mehreren Personen, einem Repository und einem Branch​
    4. 6.4 Git Flow​
      1. 6.4.1 Feature-Branches​
      2. 6.4.2 Release-Branches​
      3. 6.4.3 Release taggen​
      4. 6.4.4 Hotfix-Branches​
      5. 6.4.5 Zusammenfassung zu Git Flow​
    5. 6.5 Git Flow mit mehr als einem develop-Branch
    6. 6.6 GitHub-Workflow​
    7. 6.7 Git Flow mit mehreren Repositories
    8. 6.8 Git-Flow-Alternative
    9. 6.9 Auswahl des Workflows
  10. Kapitel 7: Hooks​
    1. 7.1 Client-seitige Hooks
      1. 7.1.1 Commit-Hooks
      2. 7.1.2 E-Mail-Hooks
      3. 7.1.3 Weitere Hooks​
    2. 7.2 Server-seitige Hooks ​
      1. 7.2.1 pre-receive-Hook​
      2. 7.2.2 update-Hook​
      3. 7.2.3 post-receive-Hook​
      4. 7.2.4 Beispiel-Hooks
    3. 7.3 Git-Attribute​
  11. Kapitel 8: Umstieg von Subversion​
    1. 8.1 Zentrale vs. verteilte Repositories
    2. 8.2 Checkout vs. Clone​
    3. 8.3 svn commit vs. git commit & git push​
    4. 8.4 svn add vs. git add​
    5. 8.5 Binärdateien im Repository​
    6. 8.6 SVN- in Git-Repository konvertieren​
      1. 8.6.1 git-svn ​
      2. 8.6.2 Nach der Umwandlung
      3. 8.6.3 Committen mit git-svn
    7. 8.7 Zusammenfassung
  12. Kapitel 9: Tipps und Tricks
    1. 9.1 Aliasse setzen und nutzen​
    2. 9.2 Mehr aus dem Log holen​
      1. 9.2.1 Begrenzte Ausgaben
      2. 9.2.2 Schönere Logs​
    3. 9.3 Ausgeführte Aktionen im Repository mit git reflog​
    4. 9.4 Garbage Collection mit git gc​
    5. 9.5 Finde den Schuldigen mit git blame ​
    6. 9.6 Wortweises diff mit word-diff
    7. 9.7 Datei-Inhalte suchen mit git grep​
    8. 9.8 Änderungen häppchenweise stagen und committen​
    9. 9.9 Auf Fehlersuche mit git bisect​
    10. 9.10 Arbeiten mit Patches
      1. 9.10.1 Patches erstellen​
      2. 9.10.2 Patches anwenden​
    11. 9.11 Repositories in Repositories mit git submodules​
    12. 9.12 Komplette Historie neu schreiben mit git filter-branch ​
    13. 9.13 Notizen erstellen mit git notes​
    14. 9.14 Tippfehler in Git-Befehlen automatisch korrigieren​
    15. 9.15 Liquid Prompt für Git​
      1. 9.15.1 Installation
      2. 9.15.2 Im Einsatz mit Git
    16. 9.16 Zusammenfassung
  13. Kapitel 10: Grafische Clients​
    1. 10.1 Git GUI
    2. 10.2 Gitk
    3. 10.3 SourceTree
    4. 10.4 GitHub Desktop
    5. 10.5 Gitg
    6. 10.6 Tig
    7. 10.7 TortoiseGit
    8. 10.8 GitKraken
    9. 10.9 Weiteres
  14. Anhang A: Befehlsreferenz
    1. A.1 Repository und Arbeitsverzeichnis anlegen
    2. A.2 Erweiterung und Bearbeitung der Historie
      1. A.2.1 Arbeiten im Staging-Bereich​
      2. A.2.2 Arbeiten mit Commits ​und Branches​
    3. A.3 Statusausgaben ​und Fehlersuche​
    4. A.4 Verteilte Repositories​
    5. A.5 Hilfsbefehle​
    6. A.6 Sonstige