So prüfen Sie, ob ein Git-Stash angewendet wurde

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 prüfen können, ob ein Git-Stash erfolgreich auf Ihr Arbeitsverzeichnis angewendet wurde. Wir werden die Interaktion zwischen dem Befehl git stash und dem Status des Repositorys untersuchen und zeigen, wie Sie die angewendeten Änderungen überprüfen und sie von nicht angewendeten Stashes unterscheiden können.

Durch praktische Schritte verwenden Sie git status, um den Zustand Ihres Arbeitsverzeichnisses vor und nach dem Stashen und Anwenden von Änderungen zu beobachten. Sie nutzen auch git stash list, um Ihre Stash-Einträge zu verwalten und zu überprüfen, damit Sie sicher bestimmen können, ob Ihre versteckten Änderungen angewendet wurden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/status("Check Status") git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/status -.-> lab-560105{{"So prüfen Sie, ob ein Git-Stash angewendet wurde"}} git/stash -.-> lab-560105{{"So prüfen Sie, ob ein Git-Stash angewendet wurde"}} git/restore -.-> lab-560105{{"So prüfen Sie, ob ein Git-Stash angewendet wurde"}} end

Überprüfen des Git-Status für angewendete Änderungen

In diesem Schritt werden wir untersuchen, wie der stash-Befehl von Git mit dem Arbeitsverzeichnis interagiert und wie Sie den Status Ihres Repositorys nach dem Anwenden eines Stashes überprüfen können.

Zunächst stellen wir sicher, dass wir uns in unserem Projektverzeichnis befinden. Öffnen Sie Ihr Terminal und navigieren Sie zum my-time-machine-Verzeichnis:

cd ~/project/my-time-machine

Jetzt erstellen wir eine neue Datei und fügen etwas Inhalt hinzu, um uncommittete Änderungen zu simulieren:

echo "This is a new feature." > feature.txt
echo "Adding some more content." >> message.txt

Wir haben jetzt eine neue Datei feature.txt erstellt und die vorhandene message.txt geändert. Lassen Sie uns sehen, wie Git diese Änderungen mit git status ansieht:

git status

Sie sollten eine Ausgabe sehen, die anzeigt, dass feature.txt nicht verfolgt wird und message.txt geändert wurde:

On branch master
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:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        feature.txt

no changes added to commit (use "git add" and/or "git commit -a")

Jetzt legen wir diese Änderungen in einem Stash ab. Ein Stash ist wie das vorübergehende Zurückstellen Ihrer aktuellen Arbeit, damit Sie zu etwas anderem wechseln können, ohne unvollständige Änderungen zu committen.

git stash save "Work in progress"

Sie sollten eine Ausgabe sehen, die bestätigt, dass der Stash gespeichert wurde:

Saved working tree and index state On master: Work in progress

Ihr Arbeitsverzeichnis sollte jetzt sauber sein, als hätten Sie diese Änderungen nicht vorgenommen. Sie können dies mit git status überprüfen:

git status

Die Ausgabe sollte ein sauberes Arbeitsverzeichnis anzeigen:

On branch master
nothing to commit, working tree clean

Jetzt wenden wir den Stash an, den wir gerade erstellt haben. Das Anwenden eines Stashes bringt die versteckten Änderungen wieder in Ihr Arbeitsverzeichnis.

git stash apply

Sie sollten eine Ausgabe sehen, die anzeigt, dass die Änderungen angewendet wurden:

On branch master
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:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        feature.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9)

Schließlich überprüfen wir erneut den git status, um den Zustand unseres Arbeitsverzeichnisses nach dem Anwenden des Stashes zu sehen.

git status

Die Ausgabe sollte zeigen, dass die Änderungen aus dem Stash jetzt wieder in Ihrem Arbeitsverzeichnis sind und als geänderte und nicht verfolgte Dateien erscheinen, genau wie bevor wir sie versteckt haben. Dies bestätigt, dass git stash apply die Änderungen wiederherstellt, ohne sie automatisch zu stage oder zu committen.

Ausführen von git stash list zur Überprüfung

In diesem Schritt lernen wir, wie wir die Liste der von uns gespeicherten Stashes mithilfe des Befehls git stash list anzeigen können. Dieser Befehl ist nützlich, um Ihre temporäre Arbeit zu verfolgen.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden.

Im vorherigen Schritt haben wir einen Stash erstellt. Lassen Sie uns ihn in der Liste der Stashes anzeigen. Geben Sie den folgenden Befehl ein:

git stash list

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

stash@{0}: On master: Work in progress

Diese Ausgabe zeigt uns, dass wir einen Stash gespeichert haben. stash@{0} ist der Bezeichner für diesen bestimmten Stash. Die Zahl in den geschweiften Klammern gibt seine Position in der Stash-Liste an (0 ist das neueste). "On master" sagt uns, auf welchem Branch wir waren, als wir den Stash erstellt haben, und "Work in progress" ist die Nachricht, die wir beim Speichern des Stashes angegeben haben.

Wenn Sie mehrere Stashes hätten, würden sie hier aufgelistet werden, wobei stash@{0} das neueste, stash@{1} das zweitneueste und so weiter wäre.

Der Befehl git stash list ist für die Verwaltung Ihrer Stashes unerlässlich. Er ermöglicht es Ihnen, zu sehen, welche Stashes Sie zur Verfügung haben, und hilft Ihnen dabei, den Stash zu identifizieren, den Sie anwenden oder löschen möchten.

Das Verständnis, wie Sie Ihre Stashes auflisten können, ist der erste Schritt für die effektive Nutzung der Stash-Funktion zur Verwaltung Ihrer laufenden Arbeit.

Testen von unangewendeten Stashes

In diesem Schritt werden wir bestätigen, dass das Anwenden eines Stashes ihn nicht aus der Stash-Liste entfernt. Dies ist ein wichtiger Unterschied zwischen git stash apply und git stash pop.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden.

In den vorherigen Schritten haben wir einen Stash erstellt und dann angewendet. Lassen Sie uns die Stash-Liste erneut überprüfen, um zu sehen, ob der Stash noch vorhanden ist.

git stash list

Sie sollten die gleiche Ausgabe wie zuvor sehen:

stash@{0}: On master: Work in progress

Wie Sie sehen können, bleibt der Stash auch nach dem Anwenden in der Stash-Liste. Dies bedeutet, dass Sie denselben Stash bei Bedarf mehrmals anwenden können, obwohl dies kein üblicher Arbeitsablauf ist.

Wenn Sie den Stash anwenden und ihn gleichzeitig aus der Liste entfernen möchten, würden Sie stattdessen den Befehl git stash pop anstelle von git stash apply verwenden. pop ist wie das Anwenden der Änderungen und dann das sofortige Löschen des Stashes.

Lassen Sie uns git stash pop demonstrieren. Zunächst stellen Sie sicher, dass Ihr Arbeitsverzeichnis sauber ist. Da wir den Stash angewendet haben, haben wir uncommittete Änderungen. Wir können sie entweder committen oder für diese Demonstration verwerfen. Lassen Sie uns sie verwerfen, um einen sauberen Zustand wiederherzustellen.

git restore .

Dieser Befehl verwirft alle Änderungen im Arbeitsverzeichnis. Jetzt überprüfen wir den Status:

git status

Die Ausgabe sollte ein sauberes Arbeitsverzeichnis anzeigen:

On branch master
nothing to commit, working tree clean

Jetzt verwenden wir git stash pop, um den Stash anzuwenden und ihn aus der Liste zu entfernen.

git stash pop

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Stash angewendet und dann gelöscht wurde:

On branch master
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:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        feature.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9)

Schließlich überprüfen wir die Stash-Liste erneut:

git stash list

Diesmal sollten Sie keine Ausgabe sehen, was darauf hinweist, dass die Stash-Liste leer ist:

Dies bestätigt, dass git stash pop den Stash nach dem Anwenden entfernt, während git stash apply ihn in der Liste belässt. Das Verständnis des Unterschieds zwischen apply und pop ist entscheidend für die effektive Verwaltung Ihrer Stashes.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Stash erfolgreich auf das Arbeitsverzeichnis angewendet wurde. Wir begannen damit, Änderungen in einem Projekt zu erstellen und zu stash'en. Dann verwendeten wir git status, um den Zustand des Arbeitsverzeichnisses vor und nach dem Stashen und Anwenden zu beobachten. Ein sauberes Arbeitsverzeichnis nach dem Anwenden eines Stashes zeigt an, dass die Änderungen erfolgreich wiederhergestellt wurden.

Wir haben auch untersucht, wie man git stash list verwendet, um die Liste der verfügbaren Stashes anzuzeigen und zu bestätigen, dass ein Stash aus der Liste entfernt wird, nachdem er mit git stash apply oder git stash pop angewendet wurde. Dies bietet eine klare Möglichkeit, zu überprüfen, dass ein bestimmter Stash nicht mehr ausstehend ist.