Se eu estivesse fazendo, usaria "rebase". Supondo que você tenha sua filial registrada, e que seja ramificada do mestre, faça
git rebase -i master
Isso permitirá que você modifique os commits do master para o seu branch atual. No seu caso, substitua pick
por s
(por squash
) ou f
(por fixup
, que é uma squash que elimina a mensagem de confirmação do commit esmagado). Salve e saia (ZZ no Vim) e rebase fará sua mágica. Rebase é uma solução mais geral, pois na mesma operação você pode remover, reordenar e reformular os commits.
As configurações de rebase serão abertas no Vim ou no editor que você definir na variável de ambiente EDITOR
. No Vim, navegue até o início da linha com o commit que você deseja esmagar (com as teclas de seta ou mouse), cw
para excluir pick
e entrar no modo de inserção, f
para correção ou s
para squash ZZ
para salvar e sair.
Como observação, o link que você deu sugere que você alinhe seu ramo de recursos em um único commit. Na minha opinião, esta é uma ideia terrível. As confirmações devem representar um conjunto significativo de alterações. Uma ramificação é o conjunto dessas alterações que representa um recurso. Esmagar tudo em um commit enorme significa que será mais difícil para outros desenvolvedores seguirem suas mudanças.