bk99.de entertain the web since 1997

Git als Graph aus unveränderlichen Objekten verstehen

Zusammenfassung

Charles Duan erklärt Blobs, Bäume, Commits und Referenzen als zusammenhängendes Datenmodell hinter Gits alltäglichen Befehlen. Git verwendet vier zentrale Objekttypen.

Ideen

  • Blobs speichern Dateiinhalte ohne Pfadnamen.
  • Bäume verbinden Namen mit Blobs und weiteren Bäumen.
  • Commits verweisen auf einen Baum und vorherige Commits.
  • Referenzen geben unveränderlichen Commitobjekten bewegliche Namen.
  • Der Index bereitet den Baum des nächsten Commits vor.
  • Merge-Commits verbinden mehrere Eltern in einem gemeinsamen Graphen.

Einsichten

  • Befehle werden vorhersehbar, wenn ihre Objektänderungen sichtbar sind.
  • Inhaltsadressierung macht identische Daten automatisch gemeinsam nutzbar.
  • Historie ist ein Graph und keine zwingend lineare Zeitleiste.
  • Bewegliche Referenzen schaffen Bedienkomfort über unveränderlichen Zuständen.

Fakten

  • Objektnamen entstehen aus kryptografischen Hashwerten.
  • Ein Commit enthält keinen vollständigen Branch-Namen.
  • Tags können feste Namen für bestimmte Objekte bereitstellen.

Empfehlungen

  • Untersuche ein Testrepository mit git cat-file und git ls-tree.
  • Prüfe vor riskanten Operationen Referenzen und Reflog.
  • Denke bei Mergeproblemen in gemeinsamen Vorfahren und Graphkanten.

Referenzen

Originalartikel lesen →

Im Webarchiv suchen