Isso fornece uma boa explicação para esmagar várias confirmações:
http://git-scm.com/book/en/Git-Branching-Rebasing
mas não funciona para confirmações que já foram enviadas. Como faço para esmagar os poucos commit mais recentes nos meus repositórios locais e remotos?
EDIT: Quando eu faço git rebase -i origin/master~4 master
, manter o primeiro como pick
, definir os outros três como squash
e, em seguida, sair (via cx cc no emacs), recebo:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
onde 2f40 é o pick
commit. E agora nenhum dos 4 commits aparece git log
. Eu esperava que meu editor fosse reiniciado para que eu pudesse inserir uma mensagem de confirmação. O que estou fazendo errado?
git push --force origin master