A diferença entre o git stash pop e o git stash aplica-se
git stash apply
. Quando o experimentei, parecia funcionar da mesma forma que ele.
Qual é a diferença entre git stash pop
e git stash apply
?
4 answers
git stash pop
deita fora o stash (no topo, por omissão) depois de o aplicar, enquanto que git stash apply
deixa-o na lista de stash para uma possível reutilização posterior (ou você pode então git stash drop
isso).
Isto acontece a menos que haja conflitos após {[[0]}, Neste caso, não irá remover o stash, comportando-se exactamente como git stash apply
.
Outra maneira de ver isto: {[[0]} é git stash apply && git stash drop
.
Tenho esta ligação útil que diz a diferença, como John Zwinck afirmou e uma desvantagem do git stash pop.
Por exemplo, diga que as suas alterações escondidas entram em conflito com outras alterações que fez desde que criou o stash. Tanto o pop como o apply irão ajudar a activar o modo de resolução de conflitos, permitindo-lhe resolver esses conflitos de forma simpática... e nenhum deles irá livrar-se do stash, mesmo que esteja à espera que o pop o faça. Já que muitas pessoas esperam stashes para ser apenas uma pilha simples, isso muitas vezes leva a eles popping o mesmo stash acidentalmente mais tarde, porque eles pensaram que tinha desaparecido.
Ligação http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
git stash pop
aplica o elemento de topo escondido e remove-o da pilha. git stash apply
faz o mesmo, mas deixa-o no Stack.
Assumindo que estamos a trabalhar no ramo master
e que temos um ficheiro hello.txt
que contém" Hello " string.
stash
as suas alterações:
git stash
Mudaste-te para o outro ramo, corrigiste o erro e agora estás pronto para continuar a trabalhar no teu ... branch, então você pop
as mudanças:
git stash pop
Agora, se tentar rever o conteúdo do stash, vai ter:
$ git stash show -p
No stash found.
No entanto, se usares git stash apply
em vez disso, terás o conteúdo escondido, mas também o manterás:
$ 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
Então {[8] } é como o pop de stack-ele realmente remove o elemento uma vez que ele é estourado, enquanto apply
é mais como peek .