Git, 5th 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 5. Auflage wurde komplett aktualisiert. Da Git inzwischen bei vielen Unternehmen schon lange im Einsatz ist, werden die dort versionierten Projekte auch immer größer. Deshalb ist ein neues Kapitel voll mit Tipps zum Umgang mit besonders großen Repositorys hinzugekommen.

Table of contents

  1. Cover
  2. Über den Autor
  3. Titel
  4. Impressum
  5. Vorwort
  6. Inhaltsverzeichnis
  7. Erste Schritte
    1. 1 Grundlegende Konzepte
    2. 1.1 Dezentrale Versionsverwaltung – alles anders?
    3. 1.2 Das Repository – die Grundlage dezentralen Arbeitens
    4. 1.3 Branching und Merging – ganz einfach!
    5. 1.4 Zusammenfassung
    6. 2 Erste Schritte mit der Kommandozeile
    7. 2.1 Git einrichten
    8. 2.2 Ein paar Hinweise für Windows-User
    9. 2.3 Git einrichten
    10. 2.4 Das erste Projekt mit Git
    11. 2.5 Zusammenarbeit mit Git
    12. 2.6 Zusammenfassung
    13. 3 Erste Schritte mit SourceTree
    14. 3.1 SourceTree konfigurieren
    15. 3.2 Das erste Projekt mit Git
    16. 3.3 Zusammenarbeit mit Git
    17. 3.4 Zusammenfassung
  8. Arbeiten mit Git
    1. 4 Was sind Commits?
    2. 4.1 Zugriffsberechtigungen und Zeitstempel
    3. 4.2 Die Befehle add und commit
    4. 4.3 Exkurs: Mehr über Commit-Hashes
    5. 4.4 Eine Historie von Commits
    6. 4.5 Das HEAD-Commit
    7. 4.6 Eine etwas andere Sichtweise auf Commits
    8. 4.7 Commits untersuchen
    9. 4.8 Viele unterschiedliche Historien desselben Projekts
    10. 4.9 Schreibweisen für Commits
    11. 4.10 Zusammenfassung
    12. 5 Commits zusammenstellen
    13. 5.1 Der status-Befehl
    14. 5.2 Der Stage-Bereich umfasst alle Projektdateien
    15. 5.3 Was tun mit Änderungen, die nicht übernommen werden sollen?
    16. 5.4 Mit .gitignore Dateien unversioniert lassen
    17. 5.5 Stashing: Änderungen zwischenspeichern
    18. 5.6 Zusammenfassung
    19. 6 Das Repository
    20. 6.1 Ein einfaches und effizientes Speichersystem
    21. 6.2 Verzeichnisse speichern: Blob und Tree
    22. 6.3 Gleiche Daten werden nur einmal gespeichert
    23. 6.4 Kompression ähnlicher Inhalte
    24. 6.5 Ist es schlimm, wenn verschiedene Daten zufällig denselben Hashwert bekommen?
    25. 6.6 Commits
    26. 6.7 Wiederverwendung von Objekten in der Commit-Historie
    27. 6.8 Umbenennen, verschieben und kopieren
    28. 6.9 Zusammenfassung
    29. 7 Branches verzweigen
    30. 7.1 Parallele Entwicklung
    31. 7.2 Bugfixes in älteren Versionen
    32. 7.3 Branches
    33. 7.4 Aktiver Branch
    34. 7.5 Der Master-Branch
    35. 7.6 Branch-Zeiger umsetzen
    36. 7.7 Branch löschen
    37. 7.8 Und was ist, wenn man die Commit-Objekte wirklich loswerden will?
    38. 7.9 Zusammenfassung
    39. 8 Branches zusammenführen
    40. 8.1 Was passiert bei einem Merge?
    41. 8.2 Konflikte
    42. 8.3 Fast-Forward-Merges
    43. 8.4 First-Parent-History
    44. 8.5 Knifflige Merge-Konflikte
    45. 8.6 Zusammenfassung
    46. 9 Mit Rebasing die Historie glätten
    47. 9.1 Das Prinzip: Kopieren von Commits
    48. 9.2 Und wenn es zu Konflikten kommt?
    49. 9.3 Was passiert mit den ursprünglichen Commits nach dem Rebasing?
    50. 9.4 Empfehlungen zum Rebasing
    51. 9.5 Cherry-Picking
    52. 9.6 Zusammenfassung
    53. 10 Repositorys erstellen, klonen und verwalten
    54. 10.1 Ein Repository erstellen
    55. 10.2 Das Repository-Layout
    56. 10.3 Bare-Repositorys
    57. 10.4 Vorhandene Dateien übernehmen
    58. 10.5 Ein Repository klonen
    59. 10.6 Wie sagt man Git, wo das Remote-Repository liegt?
    60. 10.7 Kurznamen für Repositorys: Remotes
    61. 10.8 Das Origin-Repository
    62. 10.9 Zusammenfassung
    63. 11 Austausch zwischen Repositorys
    64. 11.1 Fetch, Pull und Push
    65. 11.2 Remote-Tracking-Branches
    66. 11.3 Einen Remote-Branch bearbeiten
    67. 11.4 Ein paar Begriffe, die man kennen sollte
    68. 11.5 Fetch: Branches aus einem anderen Repository holen
    69. 11.6 Fetch: Aufrufvarianten
    70. 11.7 Push mit --force
    71. 11.8 Erweiterte Möglichkeiten
    72. 11.9 Zusammenfassung
    73. 12 Versionen markieren
    74. 12.1 Arbeiten mit Tags erstellen
    75. 12.2 Welche Tags gibt es?
    76. 12.3 Die Hashes zu den Tags ausgeben
    77. 12.4 Die Log-Ausgaben um Tags anreichern
    78. 12.5 In welcher Version ist es »drin«?
    79. 12.6 Wie verschiebt man ein Tag?
    80. 12.7 Und wenn ich ein »Floating Tag« brauche?
    81. 12.8 Zusammenfassung
    82. 13 Tipps und Tricks
    83. 13.1 Keine Panik – es gibt ein Reflog!
    84. 13.2 Lokale Änderungen temporär ignorieren
    85. 13.3 Änderungen an Textdateien untersuchen
    86. 13.4 alias – Abkürzungen für Git-Befehle
    87. 13.5 Branches als temporäre Zeiger auf Commits nutzen
    88. 13.6 Commits auf einen anderen Branch verschieben
    89. 13.7 Mehr Kontrolle bei Fetch, Push und Pull
    90. 13.8 Git-Version auf Ubuntu Linux aktualisieren
  9. Workflows
    1. 14 Workflow-Einführung
    2. 14.1 Warum Workflows?
    3. 14.2 Welche Workflows sind wann sinnvoll?
    4. 14.3 Aufbau der Workflows
  10. 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
  11. Workflows: Release-Prozess
    1. 19 Kontinuierlich Releases durchführen
    2. 20 Periodisch Releases durchführen
    3. 21 Mit mehreren aktiven Releases arbeiten
  12. 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
  13. Mehr über Git
    1. 28 Integration mit Jenkins
    2. 28.1 Vorbereitungen
    3. 28.2 Ein einfaches Git-Projekt einrichten
    4. 28.3 Hook als Build-Auslöser
    5. 28.4 Ein Tag für jeden erfolgreichen Build
    6. 28.5 Pull-Requests bauen
    7. 28.6 Automatischer Merge von Branches
    8. 28.7 Mit Jenkins Pipelines arbeiten
    9. 29 Große Repositorys
    10. 29.1 Repositorys mit sehr vielen Dateien
    11. 29.2 Sparse Checkout
    12. 29.3 Mit Watchman Dateiänderungen schneller erkennen
    13. 29.4 Repositorys mit großem Speicherbedarf
    14. 29.5 Shallow Clone
    15. 29.6 Zusammenfassung
    16. 30 Abhängigkeiten zwischen Repositorys
    17. 30.1 Abhängigkeiten mit Submodulen
    18. 30.2 Abhängigkeiten mit Subtrees
    19. 30.3 Zusammenfassung
    20. 31 Was gibt es sonst noch?
    21. 31.1 Worktrees – mehrere Workspaces mit einem Repository
    22. 31.2 Interaktives Rebasing – Historie verschönern
    23. 31.3 Umgang mit Patches
    24. 31.4 Archive erstellen
    25. 31.5 Grafische Werkzeuge für Git
    26. 31.6 Repository im Webbrowser anschauen
    27. 31.7 Zusammenarbeit mit Subversion
    28. 31.8 Hooks – Git erweitern
    29. 31.9 Mit Bisection Fehler suchen
    30. 32 Die Grenzen von Git
    31. 32.1 Hohe Komplexität
    32. 32.2 Komplizierter Umgang mit Submodulen
    33. 32.3 Ressourcenverbrauch bei großen binären Dateien
    34. 32.4 Repositorys können nur vollständig verwendet werden
    35. 32.5 Autorisierung nur auf dem ganzen Repository
    36. 32.6 Mäßige grafische Werkzeuge für die Historienauswertung
  14. Anhang
    1. Schritt-für-Schritt-Anleitungen
    2. Workflow-Verzeichnis
    3. Fußnoten
    4. Index

Product information

  • Title: Git, 5th Edition
  • Author(s): René Preißel, Bjørn Stachmann
  • Release date: August 2019
  • Publisher(s): dpunkt
  • ISBN: 9783864906497