Infelizmente isso acontece comigo com bastante regularidade e eu uso git stash
se percebi meu erro antes git commit
e usogit cherry-pick
, caso contrário, os dois comandos são explicados muito bem em outras respostas
Desejo adicionar um esclarecimento para git checkout targetBranch
: este comando preservará apenas o diretório de trabalho e o instantâneo em etapas se targetBranch tiver o mesmo histórico que sua ramificação atual
Se você ainda não confirmou suas alterações, use o git checkout para ir para a nova ramificação e depois confirme-as normalmente
@ A declaração de Amber não é falsa quando você passa para um newBranch , git checkout -b newBranch
um novo ponteiro é criado e está apontando exatamente para o mesmo commit que o seu ramo atual.
De fato, se você tiver uma outra ramificação que compartilhe o histórico com sua ramificação atual (ambas apontam para o mesmo commit), você pode "mover suas alterações"git checkout targetBranch
No entanto, geralmente ramificações diferentes significam histórico diferente, e o Git não permitirá que você alterne entre essas ramificações com um diretório de trabalho ou área de preparação suja. nesse caso, você pode fazer git checkout -f targetBranch
(alterações limpas e descartáveis) ou git stage
+ git checkout targetBranch
(limpar e salvar alterações); simplesmente executar git checkout targetBranch
gera um erro:
erro: suas alterações locais nos seguintes arquivos seriam substituídas pelo checkout: ... Confirme suas alterações ou as esconda antes de mudar de ramificação. Interrompendo