DIgilife - stock.adobe.com

Wie verwendet man den Befehl git stash pop?

Mit git stash pop kann ein Entwickler die zuletzt zurückgestellten Änderungen in sein Arbeitsverzeichnis verschieben und den Stash nach Abschluss des Befehls löschen.

Mit dem Befehl git stash pop kann ein Entwickler die zuletzt zurückgestellten Änderungen in sein Arbeitsverzeichnis verschieben und den zurückgeholten Stash nach Abschluss des Befehls löschen.

Die Syntax für den Befehl git stash pop ist einfach und selbsterklärend:

> git stash pop

Sie müssen jedoch zuerst Elemente zum Stash von Git hinzufügen, um die zurückgestellten Änderungen daraus zu entfernen. Genau das wird im Folgenden beschrieben.

Mit git stash können Entwickler Änderungen zurückstellen und später wieder einfügen.

git stash
Abbildung 1: Mit git stash können Entwickler Änderungen zurückstellen und später wieder aufrufen.

Warum sollten Sie git stash verwenden?

Manchmal aktualisiert ein Entwickler eine Datei oder nimmt Änderungen vor, die noch nicht für ein Commit bereit sind, um sie mit dem Rest des Teams zu teilen. Gleichzeitig muss der Entwickler ein Commit oder ein Reset durchführen, um andere Arbeiten auszuführen, wie zum Beispiel:

  • zwischen Branches wechseln
  • neuen Code von GitHub oder GitLab abrufen oder ziehen
  • aus einem anderen Branch auswählen
  • einen Fehler sofort beheben

Mit dem Befehl git stash kann ein Entwickler mit anderen Arbeiten fortfahren, für die normalerweise ein leerer Git-Index und ein bereinigtes Arbeitsverzeichnis erforderlich sind, ohne dabei die seit dem letzten Commit vorgenommenen Änderungen oder Aktualisierungen zu verlieren.

Wie können Sie Änderungen in Git zurückstellen?

Um alle Änderungen zu verschieben, die seit dem letzten Git-Commit an verfolgten und bereitgestellten Dateien vorgenommen wurden, geben Sie einfach den Befehl git stash push im Terminalfenster ein:

git stash push
git stash pop und git stash apply
Abbildung 2: Die Befehle git stash pop und git stash apply gelten als Teil der Git-Porcelaine-Befehle.

So benennen Sie einen Git-Stash

Da sich in einem Git-Stash eine große Anzahl von Einträgen ansammeln können, ist es sinnvoll, jeden Eintrag im Stash zu benennen.

Fügen Sie dazu eine Git-Stash-Nachricht mit dem Flag -m hinzu:

git stash push --message „Git stash pop Tutorial“

Wie speichert man nicht getrackte Dateien?

Standardmäßig wirkt der Befehl git stash push nur auf getrackte Dateien und Dateien, die im Git-Index bereitgestellt wurden. Um nicht getrackte Dateien zu speichern, fügen Sie den Switch -u oder –include-untracked hinzu:

git stash push --include-untracked

Nach Abschluss des Befehls git stash push wird Ihr Arbeitsbereich auf den Zustand zurückgesetzt, in dem er sich beim letzten Git-Commit befand.

Sie müssen den Switch -u verwenden, um nicht getrackte Dateien zum Git-Stash hinzuzufügen.

Wie verwendet man den Befehl git stash pop?

Nachdem ein Entwickler seine Änderungen in den Stash verschoben hat, kann er nach Belieben pushen, pullen, abrufen, zurücksetzen und auswählen. Wenn er die zurückgestellten Änderungen wiederherstellen möchte, gibt er einfach den Befehl git stash pop ein:

git stash pop

Dadurch werden alle zurückgestellten Änderungen wieder in den Arbeitsbereich verschoben und gleichzeitig der entsprechende Eintrag aus der Stash-Liste gelöscht.

Beispiel für git stash pop

Der beste Weg, Befehle wie git stash pop zu lernen, ist, sie tatsächlich zu verwenden.

Die folgenden neun Befehle bieten ein Beispiel für git stash pop von Anfang bis Ende, mit dem die folgenden Aufgaben ausgeführt werden:

  • erstellen eines Git-Repositorys
  • Dateien und Commits hinzufügen
  • getrackte Dateien aktualisieren
  • Aktualisierungen speichern
  • weitere Änderungen und Commits vornehmen
  • zurückgestellte Änderungen zurückholen

Probieren Sie diese Befehle aus, um die Funktionsweise des Befehls „git stash pop“ wirklich zu verstehen:

git init
echo "Git stash pop command." >> example.txt
git add .
git commit -m "First git stash pop example commit"
echo "Updated git stash pop tutorial." >> example.txt
git stash
rm example.txt
git commit -am "updated the stash pop example file"
git stash pop

Wie gehen Sie mit git-stash-Konflikten um?

Es kann zu einem Konflikt kommen, wenn eine Datei, die Sie aus dem Stash in Ihr Arbeitsverzeichnis verschieben, aktualisiert und Teil eines Commits wurde, seit der Stash zum Pop ursprünglich erstellt wurde.

Um einen git-stash-merge-Konflikt zu lösen, gehen Sie wie folgt vor:

  • Suchen Sie die Datei, in der der Konflikt auftritt, und öffnen Sie sie.
  • Aktualisieren Sie die Datei, um Änderungen mit einem Konflikt zu korrigieren.
  • Fügen Sie die aktualisierte Datei zum Index hinzu.
  • Führen Sie einen Commit durch.

Nach dem Commit wird der git-stash-Konflikt aufgelöst und Sie können die normalen Git-Operationen fortsetzen.

Um einen git-stash-pop-Konflikt zu lösen, aktualisieren Sie einfach die Datei, in der der Konflikt auftritt, und führen Sie dann einen Commit durch.

git stash pop Konflikt
Abbildung 3: Um einen git-stash-pop-Konflikt zu lösen, aktualisieren Sie einfach die Datei, in der der Konflikt auftritt, und führen Sie anschließend einen Commit durch.

Was ist der Unterschied zwischen git stash pop und apply?

Es gibt zwei Möglichkeiten, Änderungen aus dem Stash in Ihr Arbeitsverzeichnis zu verschieben:

git stash pop
git stash apply

Der Unterschied zwischen git stash pop und git stash apply besteht darin, dass pop den Stash löscht, nachdem die Dateien in Ihr Arbeitsverzeichnis verschoben wurden, während apply dies nicht tut.

git stash popAbbildung 4: git stash pop entfernt Elemente aus dem Stash-Verlauf, git stash apply hingegen nicht.

Da der Befehl git stash pop den obersten Stash löscht, wenn er ausgeführt wird, wird außerdem die Reihenfolge aller Stashes in Ihrem Stash-Verlauf entsprechend aktualisiert.

Das sind die einzigen Unterschiede zwischen git stash pop und git stash apply.

Wie git stash und pop zusammenarbeiten

Wenn Sie Änderungen vorübergehend zurückstellen müssen, aber wissen, dass Sie in naher Zukunft darauf zurückkommen werden, ist die Stash-Funktion von Git ein Glücksfall.

Und wenn Sie diese zurückgestellten Änderungen wieder in Ihren Entwicklungsarbeitsbereich zurückholen möchten, ist der Befehl git stash pop von unschätzbarem Wert.

Erfahren Sie mehr über Cloud-Software