
Sandeep Raju Prabhakar
Ich habe verwendet git stash pop
für einige Zeit. Ich habe kürzlich davon erfahren git stash apply
Befehl. Als ich es ausprobierte, schien es genauso zu funktionieren wie git stash pop
.
Was ist der Unterschied zwischen git stash pop
und git stash apply
?

Johannes Zwinck
git stash pop
wirft weg der (standardmäßig oberste) Stash nach der Anwendung, während git stash apply
lässt es in der Stash-Liste für eine mögliche spätere Wiederverwendung (oder Sie können dann git stash drop
es).
Dies geschieht, es sei denn, es gibt danach Konflikte git stash pop
in diesem Fall wird es den Stash nicht entfernen und sich genau so verhalten git stash apply
.
Eine andere Sichtweise: git stash pop
ist git stash apply && git stash drop
.

Briankip
Ich habe diesen hilfreichen Link erhalten, der den Unterschied angibt, wie John Zwinck angegeben hat, und einen Nachteil von git stash pop
.
Angenommen, Ihre Änderungen im Stash stehen in Konflikt mit anderen Änderungen, die Sie vorgenommen haben, seit Sie das Stash zum ersten Mal erstellt haben. Sowohl pop als auch apply lösen hilfreicherweise den Merge-Konfliktlösungsmodus aus, sodass Sie solche Konflikte gut lösen können … und keiner von beiden wird den Stash los, auch wenn Sie vielleicht auch pop erwarten. Da viele Leute erwarten, dass Verstecke nur ein einfacher Stapel sind, führt dies oft dazu, dass sie später versehentlich dasselbe Versteck platzen lassen, weil sie dachten, es sei weg.
Verknüpfung: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
git stash pop
wendet das oberste gebunkerte Element an und entfernt es aus dem Stapel. git stash apply
macht dasselbe, lässt es aber im Stash Stash.
Wenn Sie es in Aktion sehen, können Sie den Unterschied besser verstehen.
Angenommen, wir arbeiten daran master
verzweigen und eine Datei haben hello.txt
die den String „Hallo“ enthält.
Ändern wir die Datei und fügen ihr den String „world“ hinzu. Jetzt möchten Sie zu einem anderen Zweig wechseln, um einen kleinen Fehler zu beheben, den Sie gerade gefunden haben, also müssen Sie das tun stash
Ihre Änderungen:
git stash
Sie sind in den anderen Zweig gewechselt, haben den Fehler behoben und können nun an Ihrem weiterarbeiten master
Filiale, also du pop
die Veränderungen:
git stash pop
Wenn Sie nun versuchen, den Stash-Inhalt zu überprüfen, erhalten Sie Folgendes:
$ git stash show -p
No stash found.
Allerdings, wenn Sie verwenden git stash apply
Stattdessen erhalten Sie den gespeicherten Inhalt, behalten ihn aber auch:
$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world
Damit pop
ist genau wie der Pop von Stack – es entfernt tatsächlich das Element, sobald es geplatzt ist, während apply
ist eher so spähen.
Angenommen, es werden keine Fehler ausgegeben und Sie möchten am obersten Stash-Element in der Liste der verfügbaren Stashes arbeiten:
git stash pop
= git stash apply
+ git stash drop

Ehsan Mashhadi
Schnelle Antwort:
git stash pop
-> aus der Stash-Liste entfernen
git stash apply
-> behalte es in der Stash-Liste

Vikrant Kashyap
Im git
verstauen ist ein Speicherbereich, in dem aktuell geänderte Dateien verschoben werden können.
stash
Bereich ist nützlich, wenn Sie einige Änderungen ziehen möchten git
-Repository und entdeckte einige Änderungen in einigen gemeinsamen Dateien, die in verfügbar sind git
Repo.
git stash apply //apply the changes without removing stored files from stash area.
git stash pop // apply the changes as well as remove stored files from stash area.
Notiz :- git apply
Wenden Sie nur die Änderungen aus dem Stash-Bereich an, während git pop
gelten sowie entfernen ändern von stash
Bereich.
9170900cookie-checkEs gilt der Unterschied zwischen Git Stash Pop und Git Stashyes