Reverte o repositório principal do git e as confirmações de ramificação do ponto de reversão

1

Eu tenho um repositório Git configurado. Este repositório tem quase 700 commits, mas todos eles estão na ramificação master . Eu gostaria de ter uma abordagem em que eu reverter esse master branch (esse rollback envolve aproximadamente 50 commits) para um ponto anterior para fazê-lo ficar lá e a partir desse ponto, ramificar tudo depois se compromete em um ramo separado.

Explicação gráfica

Estado atual:

|-.---.---.---.---.---.---.---.---+ master
 aaa bbb ccc ddd eee fff ggg hhh  HEAD

Estado desejado:

|-.---.---.--\-|  master
 aaa bbb ccc  \
               \
                \.---.---.---.---.---+ seperate-branch
                ddd eee fff ggg hhh  HEAD

Para que a ramificação master seja revertida para a ccc commit e todas as confirmações desse ponto ( ddd e em diante) sejam movidas para seperate-branch .

Eu sou relativamente novo no Git, mas me aproximo dos níveis de aprendiz, mas esse uso avançado está bem acima da minha cabeça. Eu estou usando o Ubuntu 11.04 como meu sistema. O repositório (além de ser armazenado localmente) está tendo um remote configurado para o GitHub (se isso for fazer alguma diferença).

    
por Whisperity 19.07.2012 / 20:31

1 resposta

1

Você precisa saber o commit que deseja reverter, estou chamando de SHA1

git checkout -b seperate-branch
git checkout master
git reset SHA1 --hard

E pronto!

Para empurrá-lo no GitHub, você precisará fazer

git push --force origin master
    
por 19.07.2012 / 20:57