Pode haver mais de uma maneira de fazer essa pergunta, então aqui está uma descrição do problema. Eu estava trabalhando no master e comprometi algumas coisas e então decidi que queria colocar esse trabalho em espera. Fiz backup de alguns commits e depois ramifiquei antes de começar meu trabalho de merda. Praticamente isso funciona bem, só agora tenho um branch diferente como meu principal branch de desenvolvimento. Estou me perguntando como eu poderia mudar as coisas, então estou trabalhando no master novamente, mas não tem meu trabalho inútil e disse que o trabalho está em um branch diferente.
Algumas maneiras de questionar / resolver isso: Como faço para renomear meu branch master para outra coisa e, em seguida, renomear outra coisa para master? Como faço backup do master e depois faço com que todos os commits dos quais fiz backup estejam em um branch diferente?
Obrigado por todas as respostas (rápidas)! Eles são todos bons.
[branch "crap_work"]
para ler[branch "master"]
para que o mestre ainda sincronizasseorigin/master
. Claro, o estado dos dois repositórios era tal que ainda fazia sentido.git push -uf origin master
egit push -u origin crap_work
.Acho que você deve considerar uma estratégia de desenvolvimento diferente para evitar problemas como esse. Um que parece funcionar melhor para mim é nunca fazer o desenvolvimento diretamente no meu branch master. Independentemente das mudanças que estou fazendo, sempre crio um novo branch para o novo código:
A partir daí, posso enviar as alterações para repositórios públicos:
ou, eventualmente, apenas mesclá-lo de volta com meu branch master:
Se você realmente precisa voltar a um ponto mais antigo no tempo e defini-lo como mestre, pode renomear o branch atual para outra coisa e, em seguida, verificar uma versão mais antiga para ser seu mestre:
fonte
Comece
master
, crie um branch chamadoin-progress
, então redefinamaster
para um commit anterior.fonte
Isso é relativamente fácil:
fonte
git checkout -b
cria um branch e o torna ativo.Isso definirá seu mestre para qualquer ponto em uma etapa:
fonte