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
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.
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).
Tags git github linux ubuntu ubuntu-11.04