Vederlo in azione potrebbe aiutare a meglio comprendere la differenza.
Supponendo che stiamo lavorando sul ramo master
e che abbia un file hello.txt
contenente la stringa "Hello".
Cambiamo il file e aggiungiamo una stringa "mondiale". Ora si desidera spostare a un ramo diverso per correggere un bug minore hai appena trovato, quindi è necessario stash
le modifiche:
git stash
è stata spostata verso l'altro ramo, risolto il bug e ora siete pronta a continuare a lavorare sul vostro master
ramo, in modo da pop
i cambiamenti:
git stash pop
Ora, se si tenta di rivedere il contenuto scorta si otterrà:
$ git stash show -p
No stash found.
Tuttavia, se si utilizza git stash apply
invece, si otterrà il contenuto nascosto ma avrete anche tenerlo:
$ 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
Così pop
è proprio come pop di stack - in realtà rimuove l'elemento di una volta che è spuntato, mentre apply
è più simile a sbirciare.
come le note di risposta di @briankip qui sotto, se ci sono conflitti quando uno stash è spuntato, pop non rimuoverà lo stash (e si comporterà esattamente come applicato) – Kashif
@John Zwinck l'ultima riga è più chiara, grazie – Suresh
grazie per quel commento @Kashif –