Git Stash erklärt: So speichern Sie lokale Änderungen vorübergehend in Git

Git hat einen Bereich namens Stash, in dem Sie vorübergehend eine Momentaufnahme Ihrer Änderungen speichern können, ohne sie in das Repository zu übernehmen. Es ist vom Arbeitsverzeichnis, dem Staging-Bereich oder dem Repository getrennt.

Diese Funktion ist nützlich, wenn Sie Änderungen an einem Zweig vorgenommen haben, den Sie nicht festschreiben möchten, aber zu einem anderen Zweig wechseln müssen.

Änderungen speichern

Führen Sie den folgenden Befehl aus, um Ihre Änderungen im Stash zu speichern:

git stash save "optional message for yourself"

Dadurch werden Ihre Änderungen gespeichert und das Arbeitsverzeichnis auf das zurückgesetzt, wie es für das letzte Commit ausgesehen hat. Versteckte Änderungen sind in jedem Zweig dieses Repositorys verfügbar.

Beachten Sie, dass Änderungen, die Sie speichern möchten, in nachverfolgten Dateien enthalten sein müssen. Wenn Sie eine neue Datei erstellt haben und versuchen, Ihre Änderungen zu speichern, wird möglicherweise der Fehler angezeigt No local changes to save.

Versteckte Änderungen anzeigen

Führen Sie den folgenden Befehl aus, um zu sehen, was sich in Ihrem Vorrat befindet:

git stash list

Dies gibt eine Liste Ihrer gespeicherten Schnappschüsse im Format zurück [email protected]{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE. Der [email protected]{0}Teil ist der Name des Stashs, und die Zahl in geschweiften Klammern ( { }) ist der Index dieses Stashs. Wenn Sie mehrere Änderungssätze gespeichert haben, hat jeder einen anderen Index.

Wenn Sie vergessen haben, welche Änderungen im Stash vorgenommen wurden, können Sie eine Zusammenfassung davon mit anzeigen git stash show NAME-OF-STASH. Wenn Sie das typische Patch-Layout im Diff-Stil anzeigen möchten (mit den + und s für zeilenweise Änderungen), können Sie die -pOption (für Patch) einschließen . Hier ist ein Beispiel:

git stash show -p [email protected]{0} # Example result: diff --git a/PathToFile/fileA b/PathToFile/fileA index 2417dd9..b2c9092 100644 --- a/PathToFile/fileA +++ b/PathToFile/fileA @@ -1,4 +1,4 @@ -What this line looks like on branch +What this line looks like with stashed changes

Versteckte Änderungen abrufen

Sie haben zwei Möglichkeiten, um Änderungen aus dem Vorrat abzurufen und auf den aktuellen Zweig anzuwenden, in dem Sie sich befinden:

  1. git stash apply STASH-NAME wendet die Änderungen an und hinterlässt eine Kopie im Vorrat
  2. git stash pop STASH-NAME wendet die Änderungen an und entfernt die Dateien aus dem Stash

Beim Anwenden von Änderungen können Konflikte auftreten. Sie können die Konflikte ähnlich einer Zusammenführung lösen ( git mergeDetails siehe ).

Versteckte Änderungen löschen

Wenn Sie versteckte Änderungen entfernen möchten, ohne sie anzuwenden, führen Sie den folgenden Befehl aus:

git stash drop STASH-NAME

Führen Sie den folgenden Befehl aus, um den gesamten Stash zu löschen:

git stash clear