Enquanto trabalhava na tradução do Diffux , cometi alguns erros bobos (deletar algumas linhas em um commit e adicioná-las de volta em outro assim que percebi que estava fazendo a coisa errada).
O incrivelmente paciente e talentoso Joe Lencioni me mostrou o poder do Interactive Rebase.
Basicamente, você pode escolher os commits, mesclar vários commits em apenas um ou apenas reordená-los.
Você o invoca usando git rebase --interactive
e o commit do qual deseja voltar e iniciar o rebase.
Aqui está a documentação