So überprüfen Sie, ob ein Git-Repository sauber ist

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie effizient prüfen können, ob ein Git-Repository sauber ist, indem Sie den Befehl git status --porcelain verwenden. Dieser Befehl liefert eine maschinenlesbare Ausgabe, was ihn ideal für Skripte und schnelle Statusprüfungen macht.

Sie werden den Unterschied zwischen dem Standardbefehl git status und der --porcelain-Version untersuchen und beobachten, wie sich die Ausgabe ändert, wenn das Repository sauber ist oder wenn es nicht nachverfolgte oder geänderte Dateien enthält. Diese praktische Erfahrung wird zeigen, wie Sie programmgesteuert die Abwesenheit ausstehender Änderungen überprüfen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") subgraph Lab Skills git/add -.-> lab-560095{{"So überprüfen Sie, ob ein Git-Repository sauber ist"}} git/status -.-> lab-560095{{"So überprüfen Sie, ob ein Git-Repository sauber ist"}} end

Verwenden von git status --porcelain für die Sauberkeitsprüfung

In diesem Schritt lernen wir eine nützliche Variante des git status-Befehls kennen: git status --porcelain. Dieser Befehl liefert eine saubere, maschinenlesbare Ausgabe, die sich hervorragend für Skripte eignet oder zum schnellen Überprüfen des Status ohne all den zusätzlichen Text.

Zunächst stellen wir sicher, dass wir uns in unserem Projektverzeichnis befinden. Öffnen Sie Ihr Terminal und geben Sie ein:

cd ~/project/my-time-machine

Jetzt führen wir erneut den Standardbefehl git status aus, um den aktuellen Zustand unseres Repositorys zu sehen. Da wir im vorherigen Schritt gerade einen Commit gemacht haben, sollte es sauber sein:

git status

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die darauf hinweist, dass Ihr Arbeitsverzeichnis sauber ist:

On branch master
nothing to commit, working tree clean

Jetzt probieren wir die porcelain-Version aus:

git status --porcelain

Dieser Befehl sollte keine Ausgabe liefern, wenn Ihr Repository sauber ist. Dies ist der wesentliche Unterschied – er zeigt nur eine Ausgabe für Dateien an, die nicht nachverfolgt, geändert oder in den Staging-Bereich übernommen wurden. Dies macht es sehr nützlich für das schnelle Überprüfen, ob es ausstehende Änderungen gibt.

Warum ist das nützlich? Stellen Sie sich vor, Sie schreiben ein Skript, das wissen muss, ob es uncommittete Änderungen gibt, bevor es eine Aktion ausführt. Das Parsen der normalen git status-Ausgabe kann schwierig sein, da sie für die menschliche Lektüre ausgelegt ist. Die --porcelain-Ausgabe ist für Skripte ausgelegt, was es einfach macht, programmgesteuert auf Änderungen zu prüfen.

Im nächsten Schritt sehen wir, wie sich die Ausgabe ändert, wenn wir nicht nachverfolgte oder geänderte Dateien haben.

Überprüfen, dass es keine nicht nachverfolgten oder geänderten Dateien gibt

In diesem Schritt werden wir explizit überprüfen, dass der Befehl git status --porcelain keine Ausgabe liefert, wenn das Repository sauber ist. Dies unterstreicht das Konzept, dass dieser Befehl nur Änderungen anzeigt.

Zunächst stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden:

cd ~/project/my-time-machine

Jetzt führen Sie erneut den Befehl git status --porcelain aus. Da wir seit dem letzten Commit keine Änderungen vorgenommen haben, sollte es keine Ausgabe geben.

git status --porcelain

Wenn Ihr Terminal nach Ausführung dieses Befehls keine Ausgabe anzeigt, bedeutet dies, dass Ihr Arbeitsverzeichnis sauber ist und es keine nicht nachverfolgten oder geänderten Dateien gibt. Dies ist das erwartete Verhalten für ein sauberes Repository, wenn die --porcelain-Option verwendet wird.

Dieses Fehlen einer Ausgabe ist ein eindeutiges Signal dafür, dass Git nichts Neues oder Geändertes sieht, das nachverfolgt oder committet werden muss. Es ist eine schnelle und effiziente Möglichkeit, zu bestätigen, dass Sie von einem sauberen Zustand ausgehen, bevor Sie neue Änderungen vornehmen oder andere Git-Operationen ausführen.

Im nächsten Schritt werden wir einige Änderungen vornehmen, um zu sehen, wie sich die --porcelain-Ausgabe ändert.

Testen mit verschiedenen Repository-Zuständen

In diesem Schritt werden wir einige Änderungen in unserem Repository vornehmen, um zu sehen, wie git status --porcelain diese meldet. Dies wird Ihnen helfen, die verschiedenen Codes zu verstehen, die in der porcelain-Ausgabe verwendet werden.

Zunächst stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden:

cd ~/project/my-time-machine

Jetzt erstellen wir eine neue, nicht nachverfolgte Datei. Wir nennen sie notes.txt:

echo "Some random notes" > notes.txt

Führen Sie erneut git status --porcelain aus:

git status --porcelain

Sie sollten jetzt eine Ausgabe ähnlich der folgenden sehen:

?? notes.txt

Das ?? zeigt an, dass notes.txt eine nicht nachverfolgte Datei ist. Git erkennt die Datei, verwaltet aber derzeit keine Versionen davon.

Als Nächstes ändern wir die message.txt-Datei, die wir zuvor committet haben. Wir fügen ihr eine weitere Zeile hinzu:

echo "Hello again, Future Me" >> message.txt

Der >>-Operator hängt den Text an die bestehende Datei an, anstatt sie zu überschreiben.

Jetzt führen Sie git status --porcelain noch einmal aus:

git status --porcelain

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

 M message.txt
?? notes.txt

Das M zeigt an, dass message.txt geändert wurde. Der Leerzeichen vor dem M bedeutet, dass die Änderung sich im Arbeitsverzeichnis befindet, aber noch nicht in den Staging-Bereich übernommen wurde. Das ?? für notes.txt bleibt, da es immer noch nicht nachverfolgt wird.

Schließlich nehmen wir die geänderte message.txt-Datei mit git add in den Staging-Bereich auf:

git add message.txt

Und führen Sie git status --porcelain noch einmal aus:

git status --porcelain

Die Ausgabe sollte jetzt so aussehen:

M  message.txt
?? notes.txt

Das M befindet sich jetzt in der ersten Spalte, was bedeutet, dass message.txt für den Commit in den Staging-Bereich übernommen wurde. Das Leerzeichen in der zweiten Spalte bedeutet, dass es seitdem keine weiteren Änderungen im Arbeitsverzeichnis gibt. notes.txt ist immer noch nicht nachverfolgt.

Das Verständnis dieser Codes (?? für nicht nachverfolgte Dateien, M in der zweiten Spalte für geänderte, aber nicht in den Staging-Bereich genommene Dateien, M in der ersten Spalte für in den Staging-Bereich genommene Änderungen) ist der Schlüssel für die schnelle Interpretation der git status --porcelain-Ausgabe.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man überprüft, ob ein Git-Repository sauber ist, indem man den Befehl git status --porcelain verwendet. Wir haben festgestellt, dass dieser Befehl eine maschinenlesbare Ausgabe liefert, die leer ist, wenn das Arbeitsverzeichnis sauber ist. Dies steht im Gegensatz zur Standardausgabe von git status, die auch bei einem sauberen Repository menschenlesbare Informationen liefert.

Wir haben geübt, git status --porcelain in einem sauberen Repository auszuführen und beobachtet, dass es keine Ausgabe lieferte. Dies bestätigt seine Nützlichkeit für Skripte und schnelle Überprüfungen auf ausstehende Änderungen.