Estou usando git stash pop
há algum tempo. Eu descobri recentemente sobre o git stash apply
comando. Quando eu tentei, parecia funcionar da mesma forma git stash pop
.
Qual é a diferença entre git stash pop
e git stash apply
?
git stash pop
joga fora o stash (mais alto, por padrão) depois de aplicá-lo, enquanto o git stash apply
deixa na lista de stash para possível reutilização posterior (ou você pode git stash drop
fazê - lo).
Isso acontece, a menos que haja conflitos depois git stash pop
; nesse caso, ele não removerá o esconderijo, deixando-o se comportar exatamente como git stash apply
.
Outra maneira de olhar para isso: git stash pop
é git stash apply && git stash drop
.
git stash pop
do resultado, você ainda receberá um erro de conflito.Consegui este link útil que indica a diferença, como John Zwinck afirmou e uma desvantagem de
git stash pop
.Link: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
fonte
git stash pop
aplica o elemento stashed superior e remove-o da pilha.git stash apply
faz o mesmo, mas o deixa na pilha de stash.fonte
Vê-lo em ação pode ajudá-lo a entender melhor a diferença.
Supondo que estamos trabalhando na
master
ramificação e tenha um arquivohello.txt
que contenha a string "Hello".Vamos modificar o arquivo e adicionar a string "world" a ele. Agora você deseja mudar para uma ramificação diferente para corrigir um bug menor que acabou de encontrar, portanto, é necessário fazer
stash
as alterações:Você mudou para a outra ramificação, corrigiu o erro e agora está pronto para continuar trabalhando em sua
master
ramificação, para que você façapop
as alterações:Agora, se você tentar revisar o conteúdo oculto, receberá:
No entanto, se você usar
git stash apply
, obterá o conteúdo oculto, mas também o manterá:Assim
pop
é como o pop da pilha - na verdade, ele remove o elemento depois que ele é disparado, enquantoapply
é mais como uma espiada .fonte
In
git
stash é uma área de armazenamento onde os arquivos alterados atuais podem ser movidos.stash
A área é útil quando você deseja obter algumas alterações dogit
repositório e detectou algumas alterações em alguns arquivos mútuos disponíveis no repositóriogit
.fonte
Git Stash
Pop vs apply
WorkingSe você deseja aplicar as principais alterações armazenadas em cache à alteração não faseada atual e excluí-lo também, você deve procurar
git stash pop
.Mas se você deseja aplicar as principais alterações armazenadas em cache às alterações não-estaduais atuais sem excluí-la, deve optar por isso
git stash apply
.fonte