Comecei a fazer alterações na minha base de código, sem perceber que estava em um tópico antigo. Para transferi-los, eu queria escondê-los e aplicá-los a um novo ramo fora do mestre. Eu costumava git stash pop
transferir alterações de trabalho em andamento para essa nova ramificação, esquecendo que não havia introduzido novas alterações no mestre antes de criar a nova ramificação. Isso resultou em vários conflitos de mesclagem e perda de um estoque limpo de minhas alterações (desde que eu usei o pop).
Depois de recriar o novo ramo corretamente, como posso recuperar minhas alterações ocultas para aplicá-las corretamente?
git stash drop
como o último passo para se livrar do estoque indesejado do nº 2.git stash pop
: "A aplicação do estado pode falhar com conflitos; nesse caso, não é removida da lista stash. Você precisa resolver os conflitos manualmente e ligargit stash drop
manualmente posteriormente". ( git-scm.com/docs/git-stash )Felizmente
git stash pop
, não muda o estoque no caso de um conflito!Portanto, nada para se preocupar, limpe seu código e tente novamente.
Digamos que sua base de código estava limpa antes, você poderia voltar a esse estado com:
git checkout -f
Então faça o que esqueceu, por exemplo:
git merge missing-branch
Depois disso, basta disparar
git stash pop
novamente e você obterá o mesmo esconderijo que estava em conflito antes.Atenção: O stash é seguro, no entanto, alterações não confirmadas no diretório de trabalho não são. Eles podem ficar confusos.
fonte
git stash pop
tentativa de mesclar automaticamente, entrar em conflito e mantê-lo.git stash pop
quantas vezes precisar até terminar sem conflito. Portanto, após o conflito, sim, o diretório de trabalho está bagunçado, no entanto, você pode limpá-lo e ligargit stash pop
novamente.git checkout -f
:!As instruções aqui são um pouco complicadas, por isso vou oferecer algo mais direto:
git reset HEAD --hard
Abandonar todas as alterações na ramificação atual...
Executar trabalho intermediário, conforme necessáriogit stash pop
Reponha o estoque novamente mais tarde, quando estiver prontofonte
deve funcionar, se o seu estado anterior estiver limpo.
fonte