Repositoryzustände
Repositoryzustände beschreiben den aktuellen Zustand eines Versionskontrollsystems, insbesondere von Git, in Bezug auf Dateien und Commit-Verlauf. In Git hängen Zustand und Arbeitsfluss davon ab, drei Bereiche zu verstehen: das Arbeitsverzeichnis (Working Directory), den Staging-Bereich oder Index (Index) und das Repository, auf das HEAD verweist. Der häufige Ausdruck „sauber“ bedeutet, dass Arbeitsverzeichnis, Staging-Bereich und HEAD auf denselben Stand verweisen und keine Änderungen vorliegen.
Typische Zustände sind unter anderem:
- Untracked (unverfolgte Dateien): Dateien im Arbeitsverzeichnis, die noch nicht dem Index hinzugefügt wurden.
- Modified (geänderter Zustand): Dateien im Arbeitsverzeichnis, die seit dem letzten Commit geändert wurden, aber noch nicht
- Staged (bereitgestellt/gestaged): Änderungen wurden dem Staging-Bereich hinzugefügt und sind bereit für den nächsten Commit.
- Clean (sauber): Arbeitsverzeichnis und Staging-Bereich entsprechen dem aktuellen Commit (HEAD); keine ungestagten oder geänderten Dateien.
Darüber hinaus gibt es zustandsbezogene Sonderfälle:
- HEAD und Branchzustände: In der Regel verweist HEAD auf einen Branch. Beim Auschecken eines bestimmten Commits
- Überstate durch Operationen: Merge, Rebase, Cherry-pick oder Bisect können temporäre Zustände erzeugen (Merge-Konflikte, Rebase im Fortschritt,
Veränderungen der Zustände erfolgen durch Befehle wie git add, git commit, git checkout, git merge, git rebase,