Kurs
In einem komplexen Git‑Projekt ist es schnell passiert, dass du den Überblick verlierst, welche Dateien geändert, gestaged oder noch untracked sind. Genau hier hilft git status. Dieser zentrale Git‑Befehl liefert einen klaren, vollständigen Schnappschuss des aktuellen Repository‑Zustands—er zeigt, welche Dateien sich geändert haben, was für den Commit bereitsteht und wo noch Handlungsbedarf besteht.
Ob du Merge-Konflikte behebst, gestagte Änderungen prüfst oder vor einem Commit sicherstellen willst, dass nichts liegen bleibt: git status verschafft dir die nötige Transparenz, um organisiert zu bleiben.
In diesem Leitfaden erkläre ich die einzelnen Bereiche der git status-Ausgabe und zeige fortgeschrittene Anpassungen, damit du deinen Versionskontroll‑Workflow souverän steuerst.
Was ist Git Status?
Der Befehl git status liefert eine Echtzeit-Zusammenfassung des Zustands deines Git-Repositories. Er vergleicht insbesondere das Working Directory (deine lokalen Dateien) und die Staging Area (auch Index) mit dem letzten Commit-Snapshot. So siehst du, welche Dateien geändert wurden, welche Änderungen gestaged und bereit zum Commit sind und welche neuen Dateien noch untracked sind.
Mit git status prüfst du, ob die richtigen Änderungen gestaged oder committed werden, entdeckst übersehene Edits und vermeidest halbfertige Updates. Das ist besonders hilfreich bei mehreren Branches oder beim Lösen von Merge-Konflikten, weil du präzises Feedback erhältst, was Git verfolgt und was nicht.
Zu verstehen, wie git status das Zusammenspiel von Working Tree, Staging Area und Repository-Historie widerspiegelt, ist entscheidend, um Git effektiv zu nutzen und typische Fehler zu vermeiden.

Das obige Diagramm zeigt die Beziehung zwischen Working Directory, Staging Area und Repository (Commit-Historie)—und wie git status hineinpasst:
- Unstaged changes (geänderte Dateien im Working Directory) erscheinen als "Changes not staged for commit".
- Staged changes (Dateien, die du mit
git addzum Index hinzugefügt hast) erscheinen als "Changes to be committed". - Untracked files (neue Dateien, die Git noch nicht kennt) werden ebenfalls gelistet, mit der Aufforderung, sie hinzuzufügen oder zu ignorieren.
- Wenn du mitten in einem Merge bist, informiert dich
git statusauch über Konflikte und die nächsten Schritte.
Beispielausgabe von git status:
$ git status
On branch feature/login
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: src/auth.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/utils.js
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/new-feature.js
Für ein umfassenderes Verständnis von Git und seiner Rolle in der Versionskontrolle lies diesen kompletten Git-Guide.
Lerne heute die Git-Grundlagen
So nutzt du Git Status
Hier ist ein Schritt‑für‑Schritt‑Vorgehen, um git status effektiv in deinen Workflow einzubinden.
Falls du Git noch nicht konfiguriert hast, führt dich dieser Setup-Guide durch Installation und Grundeinrichtung auf verschiedenen Systemen.
Grundlegende Nutzung von git status
- Öffne dein Terminal:
Nutze dein bevorzugtes Terminal oder die Kommandozeile. So führst du Git-Befehle direkt aus und siehst den Zustand deines Repos in Echtzeit.
- Wechsle in dein Projektverzeichnis:
Verwende den Befehl cd, um in den Ordner zu wechseln, in dem sich dein Git‑Projekt befindet.
cd /path/to/your/project
- Führe
git statusaus:
Sobald du im Projektverzeichnis bist, führe folgenden Befehl aus.
git status
Wie gesehen, enthält die Ausgabe von Git typischerweise:
- Den Namen des aktuellen Branches.
- Eine Liste gestagter Änderungen, die committed werden können.
- Eine Liste geänderter, aber nicht gestagter Dateien.
- Alle untracked files—neue Dateien, die Git noch nicht kennt.
Die Kurzform verwenden
Wenn du eine schnelle Übersicht ohne Zusatzdetails brauchst, hilft dir die Kurzform:
git status --short
Diese kompakte Ansicht listet jede Datei in einer Zeile mit Statussymbolen. Das ist besonders praktisch, wenn du gezielt nach einer Änderung suchst oder den Befehl in Skripte einbindest.
Beispielausgabe:
M index.html
A new-script.js
?? temp.txt
So liest du die Ausgabe:
- Das erste Zeichen zeigt den Status in der Staging Area.
- Das zweite Zeichen zeigt den Status im Working Directory.
|
Code |
Bedeutung |
|
M |
Geändert |
|
A |
Hinzugefügt |
|
D |
Gelöscht |
|
?? |
Untracked file |
|
MM |
In beiden Stufen geändert |
|
AM |
Hinzugefügt und anschließend geändert |
Die Option -u in git status verstehen
Mit der Option -u (Kurzform für --untracked-files) steuerst du, wie untracked Dateien in der Ausgabe angezeigt werden—relevant bei Projekten mit vielen generierten Dateien. Die Modi bedeuten:
normal(Standard)
Zeigt untracked Dateien in einem kompakten, übersichtlichen Format.
Beispiel:
git status -u normal
Das ist das Standardverhalten, das die meisten beim Ausführen von git status sehen.
all
Listet wirklich jede untracked Datei—auch solche, die standardmäßig ignoriert würden.
Beispiel:
git status -u all
Dieser Modus bietet vollständige Transparenz—hilfreich beim Debuggen von Build-Artefakten oder wenn du prüfen willst, was über .gitignore ausgeschlossen wird.
-
no
Blendet untracked Dateien aus, damit du dich auf Änderungen an bereits von Git verfolgten Dateien konzentrieren kannst.
Beispiel:
git status -u no
In einem meiner größeren Projekte—einer Node.js‑App mit komplexem Build‑Prozess—war die Ausgabe von git status voller temporärer Dateien, Caches und Build‑Artefakte. Mit -u no konnte ich mich ausschließlich auf Änderungen an getrackten Dateien konzentrieren—ohne Ablenkung durch temporäre oder automatisch erzeugte Dateien.
Ausgabe mit --porcelain für Skripte anpassen
Für Skripte oder Automatisierung ist vorhersagbare Ausgabe essenziell. Die Option --porcelain liefert ein sauberes, stabiles, maschinenlesbares Format von git status—ideal für eigene Tools oder CI/CD‑Workflows:
git status --porcelain
Dieser Modus ähnelt der Kurzform (--short), garantiert aber konsistente Ausgabe über Git‑Versionen und Konfigurationen hinweg. Anders als die Standardausgabe von git status, die je nach Einstellungen zusätzliche Zeilenumbrüche, Hinweise oder Farben enthalten kann, entfernt --porcelain all diese Formatierungen—damit Skripte die Ausgabe zuverlässig parsen können.
Nächste Schritte nach Git Status
Nachdem du git status ausgeführt und die Ausgabe analysiert hast, entscheidest du über die nächsten Schritte—Dateien stagen, Änderungen committen oder das Working Directory aufräumen. So gehst du vor.
Dateien für den Commit stagen
Beim Stagen bereitest du Änderungen für den nächsten Commit vor. Du kannst einzelne Dateien oder alles auf einmal stagen.
- Eine bestimmte Datei stagen:
Nutze das, wenn du exakt steuern willst, was in den Commit kommt.
git add <file-name>
- Alle Änderungen stagen:
Beinhaltet geänderte und neu hinzugefügte Dateien im aktuellen Verzeichnis.
git add .
- Nur Änderungen an bereits getrackten Dateien stagen (neue untracked Dateien ausschließen):
git add -u
Ich empfehle, die Änderungen vor dem Stagen mit git status oder git diff gründlich zu prüfen, um nicht versehentlich Unerwünschtes einzuschließen. In Kombination mit dem Befehl git diff erhältst du noch tiefere Einblicke in die Änderungen in deinen Dateien.
Änderungen committen
Nach dem Stagen erstellst du einen Commit. Eine klare, aussagekräftige Commit‑Nachricht dokumentiert nicht nur was sich geändert hat, sondern auch warum—und macht die Projektgeschichte langfristig verständlicher.
git commit -m "Describe your changes here"
Best Practices für Commit‑Nachrichten:
- Nutze den Imperativ (z. B. „Fix login bug“ statt „Fixed login bug“).
- Halte die Summary‑Zeile wenn möglich unter 50 Zeichen.
- Bei Bedarf nutze eine mehrzeilige Nachricht (
git commitohne-m), um Summary und Details zu trennen.
Ich habe gelernt, dass eine Minute mehr für eine gute Commit‑Nachricht später bei Reviews oder beim Debuggen Stunden spart. Sind deine Änderungen gemergt, ziehe das Squashen von Commits in Erwägung, um die Git‑Historie aufzuräumen.
Mit untracked Dateien umgehen
Untracked Dateien können die Ausgabe von git status überladen, besonders bei Projekten mit Build‑Artefakten, Logs oder Abhängigkeitsordnern. Dateien oder Verzeichnisse, die du nie tracken willst, kannst du über eine .gitignore im Projektroot ausschließen.
# Dependency-Ordner und Logdateien ignorieren
node_modules/
*.log
# Systemdateien ignorieren
.DS_Store
Thumbs.db
So landen nur relevante Dateien im Repository, und die Ausgabe von git status bleibt schlank und fokussiert. Wenn du übrig gebliebene untracked Dateien aus deinem Arbeitsverzeichnis entfernen willst, ist git clean ebenfalls ein hilfreiches Tool.
Status regelmäßig prüfen
git status häufig auszuführen ist eine einfache, aber wirkungsvolle Gewohnheit, um einen sauberen, kontrollierten Entwicklungsworkflow zu halten. Prüfe in regelmäßigen Abständen den Zustand deines Working Directory und der Staging Area—vor allem vor Commits, Branch‑Wechseln oder Merges—und vermeide so typische Fehler wie unvollständige Commits oder übersehene untracked Dateien.
Ich habe diesen Schritt in meine tägliche Routine aufgenommen—und Fehler in meiner Commit‑Historie deutlich reduziert.
Häufige Probleme mit Git Status lösen
Trotz der Einfachheit kann die Ausgabe von git status manchmal überwältigend oder verwirrend sein. Hier sind häufige Probleme und wie du sie angehst.
Unerwünschte untracked Dateien
In großen Projekten, besonders mit diversen Build‑Tools, tauchen oft Dateien auf, die du nie tracken wolltest. Prüfe dann deine .gitignore und entferne sie bei Bedarf aus dem Tracking mit:
git rm --cached <file-name>
Nachdem du .gitignore aktualisiert und git rm --cached verwendet hast, führe git status erneut aus, um zu prüfen, dass die Datei nicht mehr getrackt wird oder unnötig auftaucht.
Überfrachtete Ausgabe
In Projekten mit vielen Dateien—insbesondere mit Logs, Caches oder temporären Assets—kann die Ausgabe von git status unübersichtlich werden. Das erschwert es, die relevanten Änderungen schnell zu erkennen.
Zeige in dem Fall eine prägnante Ein-Zeilen-pro-Datei-Übersicht an:
git status --short
Oder blende untracked Dateien komplett aus:
git status -u no
Zusammen sorgen diese Optionen dafür, dass git status fokussierter und leichter zu scannen ist—gerade in großen Codebasen oder automatisierten Workflows.
Fazit
Kurz gesagt: git status ist ein unverzichtbares Tool, das dir ein Echtzeit‑Fenster in die Gesundheit deines Repositories öffnet. Wenn du die Standardansicht, die Kurzform und erweiterte Optionen wie das -u-Flag beherrschst, verschlankst du deinen Git‑Workflow und umgehst typische Fallstricke. Probiere die Modi in deinen Projekten aus und erlebe, wie mehr Klarheit beim Änderungsmanagement die Entwicklung beschleunigt.
Wenn du neu bei Git bist, wird git status in Kombination mit git init noch hilfreicher—dem Befehl zum Initialisieren von Repositories. Falls noch nicht geschehen, schau dir mein Git‑Init‑Tutorial an, um zu lernen, wie du ein Repository von Grund auf einrichtest.
Und wenn du deine Git‑Kompetenzen weiter vertiefen willst, schau dir diese DataCamp‑Kurse an:
- Intermediate Git – Lerne mehr zu Branching, Merging und dem Lösen von Konflikten.
- GitHub Foundations – Integriere Git mit GitHub für kollaborative Projekte.
Viel Spaß beim Coden—und auf eine perfekte Synchronisierung mit deinem Repository!
Lerne heute die Git-Grundlagen
FAQs
Worin unterscheidet sich git status von git diff?
Während git status eine Zusammenfassung der Änderungen zeigt, liefert git diff die tatsächlichen Inhaltsunterschiede zwischen Dateien und damit einen wesentlich detaillierteren Vergleich.
Kann ich die Ausgabe von git status anpassen?
Ja. Mit Optionen wie --short, --porcelain und -u kannst du die Ausgabe verkürzen oder skriptfreundlich gestalten—je nach Bedarf.
Was ist der Unterschied zwischen gestagten und nicht gestagten Änderungen in Git?
Gestagte Änderungen wurden dem Index hinzugefügt und sind bereit für den Commit, während nicht gestagte Änderungen noch im Working Directory liegen und noch nicht für den Commit markiert sind.
Wie ignoriere ich Dateien, die in git status auftauchen?
Du kannst Dateimuster in eine .gitignore eintragen, um bestimmte Dateien (z. B. Logs oder Build‑Artefakte) davon auszunehmen, als untracked in git status zu erscheinen.
Warum tauchen untracked Dateien in git status immer wieder auf?
Untracked Dateien sind nicht zum Git‑Index hinzugefügt. Sie tauchen weiter auf, wenn sie nicht explizit in .gitignore ignoriert oder mit git add gestaged werden.
Wie hilft git status, schlechte Commits zu vermeiden?
Wenn du vor dem Commit git status ausführst, siehst du alle gestagten und nicht gestagten Änderungen und stellst sicher, dass du nichts vergisst oder Unfertiges committest.
Ist git status beim Lösen von Merge-Konflikten hilfreich?
Auf jeden Fall. git status hebt Konflikte hervor und zeigt dir, wie du sie vor dem finalen Merge behebst.
Wie oft sollte ich git status in meinem Workflow nutzen?
Regelmäßig! Nutze git status vor dem Stagen, Committen oder Branch‑Wechseln, um organisiert zu bleiben und teure Fehler zu vermeiden.
Ich bin Dateningenieur und Community-Builder und arbeite mit Datenpipelines, Cloud- und KI-Tools. Außerdem schreibe ich praktische, super nützliche Tutorials für DataCamp und angehende Entwickler.
