Tive um problema semelhante, que resolvi da seguinte maneira:
Este é o grupo de commit que eu queria esmagar:
1 s 01cc5a08 Removes open div
2 s a2b6eecf Restores old fonts
3 s 603479ff Cleans left out div
4 pick 5afdbc33 Update: show logo on landing page
5 s 04c1cb13 change version of dev and prod from 1 to 2
6 s bbe6a8f8 Update: show logo on landing page if they have one
7 s c0d6008a Adds check for C users
Como você pode ver, eu não queria. 4, mas 1, 2 e 3 não tinham nenhum compromisso anterior para esmagar . Portanto, não é possível 'esmagar' sem um erro de confirmação anterior .
Minha solução foi usar a r
opção de# r, reword = use commit, but edit the commit message
Então, minha lista de commits era assim:
1 r 01cc5a08 Removes open div
2 s a2b6eecf Restores old fonts
3 s 603479ff Cleans left out div
4 s 5afdbc33 Update: show logo on landing page
5 s 04c1cb13 change version of dev and prod from 1 to 2
6 s bbe6a8f8 Update: show logo on landing page if they have one
7 s c0d6008a Adds check for C users
Depois de salvar, o shell interativo me pediu para reformular o commit escolhido.
Depois disso, meu log de commits resultou em um único commit que resultou em um histórico de commit mais limpo.