Was befindet sich im `.git`-Verzeichnis?
(blog.meain.io)- Detaillierte Erklärung des
.git-Verzeichnisses, das beigit initerstellt wird - Das
.git-Verzeichnis enthält verschiedene Dateien und Ordner wieconfig,HEAD,hooks,objectsundrefs- Die Textdatei
configenthält die Git-Einstellungen des aktuellen Repositorys sowie Grundeinstellungen wie Autor und Dateimodus - Die Datei
HEADenthält den aktuellen Head des Repositorys, der auf den Standard-Branch zeigt. Je nachdem, welcher Standard-Branch gewählt wurde, also etwamasterodermain - Das Verzeichnis
hooksenthält alle Skripte, die vor oder nach Git-Aktionen ausgeführt werden können - Das Verzeichnis
objectsenthält Daten zu den Dateien und Commits des Repositorys - Das Verzeichnis
refsspeichert Referenzen bzw. Zeiger auf Branches und Tags
- Die Textdatei
- Wenn eine Datei zum Repository hinzugefügt wird, wird die Datei
indexverändert und im Verzeichnisobjectswerden ein neuer Ordner und neue Dateien angelegt - Die neue Datei im Verzeichnis
objectsenthä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 Verzeichnisobjects - Das Erstellen eines Branches ist in Git ein einfacher Vorgang: Im Verzeichnis
refs/headswird 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
objectssowie alle explizit gepushten Branches und Tags unterrefsan ein anderes Git-Repository übertragen
1 Kommentare