Versionsverwaltung mit Git

Book description

  • Von grundlegenden Funktionen über die Handhabung von Branches und Remote-Repositories bis zu Tipps und Tricks für (nicht nur) alltägliche Funktionen
  • Auswahl sinnvoller Workflows und Einsatz in Teams
  • Git-Repositories hosten mit GitHub und GitLab

Git ist in der Softwareentwicklung bereits weit verbreitet – sowohl in Firmen 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 Buchs liegt auf dem praktischen Arbeiten mit Git. Sie lernen anhand eines Projekts, welche Befehle es gibt, wie diese arbeiten und wie Sie auftretende Probleme lösen können. Neben alltäglichen Funktionen finden Sie auch seltener gebrauchte Kommandos, die aber ebenfalls wichtig sind. Dabei legt der Autor großen Wert auf die Einbindung und Anpassung des Entwicklungsprozesses.

Im zweiten Teil des Buchs werden fortgeschrittene Themen behandelt. Der Schwerpunkt liegt auf dem Einsatz von Git in Teams. Darunter etwa das Hosten verteilter Repositories mit GitHub und GitLab. Ein weiteres Kapitel behandelt die Workflows, die je nach Anzahl der beteiligten Personen, Branches und Repositories eines Projekts variieren.

Darüber hinaus gibt Ihnen der Autor hilfreiche Informationen für den Umstieg von Subversion, einen Überblick über grafische Git-Programme, Hinweise für eine langfristig nachvollziehbare Git-Historie sowie eine Einführung in DevOps, wofür Git die technische Grundlage bildet. Ein Kapitel zu häufig gestellten Fragen rundet diesen Praxiseinstieg ab.

Das Buch richtet sich sowohl an blutige Einsteiger als auch an erfahrene Leser.

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
  • Tipps für nachvollziehbare Git-Historien
  • Frequently Asked Questions
  • Einstieg in DevOps
  • Befehlsreferenz

Table of contents

  1. Impressum
  2. Cheat Sheet
  3. Einleitung
    1. Aufbau des Buches
    2. Konvention
    3. Hinweise und Tipps
    4. Feedback
    5. Danksagung
  4. Kapitel 1: Einführung
    1. 1.1 Lokale Versionsverwaltung
    2. 1.2 Zentrale Versionsverwaltung
    3. 1.3 Verteilte Versionsverwaltung
    4. 1.4 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 Das Arbeitsverzeichnis säubern‌
      2. 3.8.2 Dateien ignorieren‌
    9. 3.9 Zusammenfassung
  7. Kapitel 4: Verteilte Repositorys
    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-Repositorys
    5. 4.5 Der Workflow mit drei Repositorys‌
    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-Repositorys um externe Tools erweitern‌
    2. 5.2 GitLab
      1. 5.2.1 Installation‌
      2. 5.2.2 Konfiguration
    3. 5.3 Weitere Git-Hosting-Lösungen‌
    4. 5.4 CI/CD: Continuous Integration und Continuous Delivery
      1. 5.4.1 Der Workflow
      2. 5.4.2 GitHub Actions
      3. 5.4.3 GitLab CI/CD‌
    5. 5.5 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 Git Flow mit mehreren Repositorys
    7. 6.7 GitHub-Flow
    8. 6.8 GitLab-Flow
    9. 6.9 Weitere Aspekte in Workflows
    10. 6.10 Zusammenfassung
  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 Repositorys
    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 Große Dateien mit Git LFS verwalten
    2. 9.2 Partielles Klonen
    3. 9.3 Aliasse setzen und nutzen‌
    4. 9.4 Mehr aus dem Log holen‌
      1. 9.4.1 Begrenzte Ausgaben
      2. 9.4.2 Schönere Logs‌
    5. 9.5 Ausgeführte Aktionen im Repository mit git reflog‌
    6. 9.6 Garbage Collection mit git gc‌
    7. 9.7 Finde den Schuldigen mit git blame ‌
    8. 9.8 Wortweises diff mit word-diff
    9. 9.9 Verschobene Zeilen farblich hervorheben mit git diff --color-moved
    10. 9.10 Datei-Inhalte suchen mit git grep‌
    11. 9.11 Änderungen häppchenweise stagen und committen
    12. 9.12 Auf Fehlersuche mit git bisect‌
    13. 9.13 Arbeiten mit Patches
      1. 9.13.1 Patches erstellen‌
      2. 9.13.2 Patches anwenden‌
    14. 9.14 Repositorys in Repositorys mit git submodules‌
    15. 9.15 Subtree als Alternative für Submodule
    16. 9.16 Komplette Historie neu schreiben mit git filter-repo
    17. 9.17 Tippfehler in Git-Befehlen automatisch korrigieren‌
    18. 9.18 Git Worktree
    19. 9.19 Liquid Prompt für Git‌
      1. 9.19.1 Installation
      2. 9.19.2 Im Einsatz mit Git
    20. 9.20 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. Kapitel 11: Nachvollziehbare Git-Historien
    1. 11.1 Gut dosierte Commits
    2. 11.2 Gute Commit-Messages
  15. Kapitel 12: DevOps‌
    1. 12.1 DevOps im Überblick
    2. 12.2 Das Problem
    3. 12.3 DevOps-Pipeline
    4. 12.4 DevSecOps‌
    5. 12.5 Zusammenfassung
  16. Kapitel 13: Frequently Asked Questions
  17. 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 Status-Ausgaben ‌und Fehler-Suche‌
    4. A.4 Verteilte Repositorys‌
    5. A.5 Hilfsbefehle‌
    6. A.6 Sonstige

Product information

  • Title: Versionsverwaltung mit Git
  • Author(s): Sujeevan Vijayakumaran
  • Release date: February 2021
  • Publisher(s): mitp Verlag
  • ISBN: 9783747503065