Comecei a trabalhar em uma nova funcionalidade e depois de codificar um pouco, decidi que esta funcionalidade deveria estar em seu próprio ramo.
Como posso mover as alterações não comprometidas existentes para uma nova filial e reiniciar a minha actual?
Quero reiniciar minha filial atual, preservando o trabalho existente no novo recurso.
Use o seguinte:
git checkout -b <new-branch>
Isto deixará o seu ramo actual como está, crie e faça o checkout de um novo ramo e mantenha todas as suas alterações. Você pode então fazer um commit com:
git add <files>
e comprometer-se com a sua nova filial:
git commit -m "<Brief description of this commit>"
As alterações no directório de trabalho e as alterações encenadas no índice ainda não pertencem a nenhum ramo. Isto muda onde essas mudanças terminariam.
Você não redeia o seu ramo original, ele fica como está. O último compromisso no <<old-branch>
ainda será o mesmo. Portanto, você `checkout -b
e depois comete.
Em alternativa:
Guarde as alterações actuais para um armazenamento temporário:
"$$ git stash
Crie um novo ramo com base neste esconderijo, e mude para o novo ramo:
`$ ramo de git-stash
Dica: use a tecla Tab para reduzir a digitação do nome do esconderijo.
Se o cometeres, também podes escolher a identificação do único compromisso. Eu faço isto frequentemente quando começo a trabalhar em master, e depois quero criar uma filial local antes de ir para a minha origem/
git cherry-pick <commitID>
Há muita coisa que você pode fazer com cereja, como descrito aqui, mas isso pode ser um caso de uso para você.