A maneira mais segura e provavelmente mais limpa de ir é fazer o rebase de forma interativa.
git rebase -i HEAD^^
Ou
git rebase -i baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e^
De lá, você pode esmagar commits, o que coloca um ou mais commits juntos no commit anterior. Para excluir completamente uma confirmação do histórico, exclua a linha da lista.
Você pode reverter uma confirmação com git revert
, mas adicionará mais mensagens de confirmação ao histórico, o que pode ser indesejável. Use o parâmetro -n
para informar ao Git para não cometer a reversão imediatamente. Você pode fazer o rebase de forma interativa e esmagá-los até um ponto de encontro anterior para manter as coisas limpas.
Se os dois commits com os quais você está trabalhando afetarem o (s) mesmo (s) arquivo (s), você poderá ver um conflito de mesclagem.
A redefinição do repositório com git reset --hard
deve ser feita com cuidado, pois não pode ser desfeita.
A história de reescrita deve ser feita com cuidado.