git squash commits

Adicione o seguinte ao seu .bashrcou semelhante:

function gsq(){
git reset
--soft HEAD~$1 &&
git commit
--edit -m
"$(git log --format=%B --reverse HEAD..HEAD@{1})"
}

então você pode usar gsq 3para esmagar os últimos três commits em um.