GIT Reset Para Unificar Vários Commits em um Único Commit

git reset --soft HEAD~2 
git commit -m "new commit message"
git push -f

O jeito mais rápido para se unificar vários commits num único commit é usando o git reset. Pra quem não sabe o nome desta operação é SQUASH, mas o GIT não tem uma comando git squash como muitos podem pensar.

Apesar de muitos artigos desaconselharem o uso do RESET por vários motivos, esta sequência de comandos é inofensiva e muito fácil de realizar.

No exemplo acima basicamente o reset desfaz os últimos 2 commits indicados em HEAD~2 sendo que o –soft indica para manter os arquivos impactados na working area.

Na sequência basta realizar um novo commit com todos os arquivos contendo as alterações dos commits desfeitos. Uma nova mensagem precisa ser informada para este novo commit.

Simples, rápido e eficiente!