Übersicht
git status [-s] [-b] [--porcelain[=<version>]] [--ignored]
Beschreibung
Der git status-Befehl zeigt den Zustand des Working Trees und der Staging Area. Er zeigt, welche Dateien für den nächsten Commit gestaged sind, welche modifiziert, aber nicht gestaged sind, und welche untracked sind. Er meldet auch den aktuellen Branch, ob er voraus oder zurück gegenüber dem Upstream ist, und alle laufenden Operationen wie Merges oder Rebases.
git status ist der am häufigsten ausgeführte Git-Befehl — er ist sicher, schnell und informativ. Verwenden Sie ihn ständig, um zu bestätigen, in welchem Zustand sich Ihr Repository befindet, bevor Sie Entscheidungen treffen. Die Standardausgabe ist menschenfreundlich mit Farben und Hinweisen; die --porcelain-Ausgabe ist stabil, maschinenlesbar und für Skripte gedacht.
Im täglichen Einsatz integriert sich git status eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git status --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.
Zu verstehen, wie git status mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git status hilft, alle drei zu vermeiden.
Häufige Optionen
| Option | Beschreibung |
|---|---|
-s, --short | Anzeige im Kurzformat mit zweistelligen Statuscodes. |
-b, --branch | Zeigt Branch- und Tracking-Info auch im Kurzformat. |
--porcelain | Stabile maschinenlesbare Ausgabe für Skripte. |
--ignored | Zeigt auch ignorierte Dateien an. |
-u <mode> | Steuert, wie untracked Dateien gemeldet werden (no, normal, all). |
--ahead-behind | Berechnet voraus/zurück-Zählungen gegenüber dem Upstream. |
Beispiele
git status
# Vollständiger menschenlesbarer Status
git status -sb
# Kompaktes Format mit Branch-Info
git status --porcelain=v2 --branch
# Stabile Ausgabe für Shell-Skripte und Editoren
git status --ignored
# Auch von .gitignore erfasste Dateien einbeziehen
Häufige Fehler
Anfänger geraten manchmal in Panik, wenn git status viele untracked Dateien in einem frisch geklonten Repo mit Build-Artefakten zeigt. Fügen Sie eine ordentliche .gitignore hinzu, um sie herauszufiltern. Eine weitere Falle ist das Parsen der Standardausgabe in Skripten — das Format kann zwischen Versionen und Übersetzungen variieren. Verwenden Sie für Automatisierung immer --porcelain. Schließlich: Große untracked Verzeichnisse können Status erheblich verlangsamen; verwenden Sie -uno, um sie zu überspringen.
Verwandte Befehle
git diff, git log, git add, git stash