Devido a uma má selecção de cerejas, o meu repositório Git local está actualmente cinco compromissos à frente da origem, e não num bom estado. Eu quero me livrar de todos esses commits e começar de novo.
Obviamente, apagar meu diretório de trabalho e reclonar faria isso, mas baixar tudo do GitHub novamente parece um exagero, e não é um bom uso do meu tempo.
Talvez git revert
seja o que eu preciso, mas eu não'não quero acabar 10 comete antes da origem (ou mesmo seis), mesmo que o próprio código volte ao estado certo. Eu só quero fingir que a última meia hora nunca aconteceu.
Há algum comando simples que faça isso? Parece um caso de uso óbvio, mas eu'não estou encontrando nenhum exemplo disso.
Note que esta pergunta é especificamente sobre compromissos, não sobre:
Se o seu excesso de compromissos só for visível para si, pode simplesmente fazer
"git reset - origem dura/
Fazendo um git revert
faz com que novos se comprometam a remover compromissos antigos de uma forma que mantenha a história de todos sãos.
Tente:
git reset --hard <the sha1 hash>
para repor a sua cabeça para onde quer que queira estar. Use o gitk para ver em qual compromisso você quer estar. Você pode fazer reset dentro do gitk também.