Eu estava trabalhando no ramo principal, fiz algumas alterações e as escondi. Agora, meu mestre está na HEAD.
Mas agora, quero recuperar essas alterações, mas para um novo ramo que ramifique da versão HEAD do ramo mestre.
Como eu faço isso ?
Eu estava trabalhando no ramo principal, fiz algumas alterações e as escondi. Agora, meu mestre está na HEAD.
Mas agora, quero recuperar essas alterações, mas para um novo ramo que ramifique da versão HEAD do ramo mestre.
Como eu faço isso ?
Respostas:
O procedimento padrão não está funcionando?
git stash savegit branch xxx HEADgit checkout xxxgit stash popMais curta:
git stashgit checkout -b xxxgit stash popgit stash save "description"comando mencionado anteriormente; e então eu git cleara ramificação (para descartar o diretório de trabalho real) e depois git stash apply stash@{my_desired_stash}na ramificação desejada (depois de mudar para isso com git checkout <branch>obviamente). Eu sei que não é uma solução real, mas é o melhor que você pode fazer com o git .
git stash dropuma vez que eu tinha cometido
Como você já ocultou suas alterações, tudo o que você precisa é este one-liner:
git stash branch <branchname> [<stash>]Nos documentos ( https://www.kernel.org/pub/software/scm/git/docs/git-stash.html ):
Cria e faz check-out de uma nova ramificação denominada < branchname > iniciando no commit no qual o < stash > foi criado originalmente, aplica as alterações registradas em < stash > à nova árvore e índice de trabalho. Se isso for bem-sucedido e < stash > for uma referência ao formulário stash @ {< revision >}, ele eliminará o < stash >. Quando não for fornecido < stash >, aplica-se o mais recente.
Isso é útil se o ramo no qual você executou o git stash save tiver sido alterado o suficiente para que a aplicação do git stash falhe devido a conflitos. Como o stash é aplicado na parte superior da confirmação que era HEAD no momento em que o git stash foi executado, ele restaura o estado stash original sem conflitos.
Se você tiver algumas alterações no seu espaço de trabalho e deseja armazená-las em uma nova ramificação, use este comando:
git stash branch branchName
Isso fará:
- um novo ramo
- mover alterações para este ramo
- e remova o stash mais recente (como: git stash pop)