- Detaillierte Erklärung des
.git-Verzeichnisses, das bei git init erstellt wird
- Das
.git-Verzeichnis enthält verschiedene Dateien und Ordner wie config, HEAD, hooks, objects und refs
- Die Textdatei
config enthält die Git-Einstellungen des aktuellen Repositorys sowie Grundeinstellungen wie Autor und Dateimodus
- Die Datei
HEAD enthält den aktuellen Head des Repositorys, der auf den Standard-Branch zeigt. Je nachdem, welcher Standard-Branch gewählt wurde, also etwa master oder main
- Das Verzeichnis
hooks enthält alle Skripte, die vor oder nach Git-Aktionen ausgeführt werden können
- Das Verzeichnis
objects enthält Daten zu den Dateien und Commits des Repositorys
- Das Verzeichnis
refs speichert Referenzen bzw. Zeiger auf Branches und Tags
- Wenn eine Datei zum Repository hinzugefügt wird, wird die Datei
index verändert und im Verzeichnis objects werden ein neuer Ordner und neue Dateien angelegt
- Die neue Datei im Verzeichnis
objects enthält Typ, Größe und Daten der hinzugefügten Datei; ihr Dateiname wird aus dem SHA-1-Inhalt abgeleitet
- Wenn eine Datei committet wird, entstehen mehrere Änderungen, darunter die Erstellung einer neuen Datei namens
COMMIT_EDITMSG, die die Commit-Nachricht enthält, sowie neue Objekte im Verzeichnis objects
- Das Erstellen eines Branches ist in Git ein einfacher Vorgang: Im Verzeichnis
refs/heads wird eine neue Datei mit dem Branchnamen und der ID des neuesten Commits angelegt
- Das Auschecken eines Branches umfasst die Aktualisierung der Datei
.git/HEAD, sodass sie auf den ausgecheckten Branch zeigt
- Das Zusammenführen von Branches kann auf drei Arten erfolgen: Fast-Forward-Merge, Rebase-Merge oder durch die Erstellung eines separaten Merge-Commits
- Wenn ein Repository gepusht wird, werden alle Inhalte des Verzeichnisses
objects sowie alle explizit gepushten Branches und Tags unter refs an ein anderes Git-Repository übertragen
1 Kommentare