Ceci donne une bonne explication de l'écrasement des commits multiples :
http://git-scm.com/book/en/Git-Branching-Rebasing
mais cela ne fonctionne pas pour les commits qui ont déjà été poussés. Comment puis-je écraser les quelques commits les plus récents à la fois dans mon dépôt local et distant ?
EDIT : Quand je le fais git rebase -i origin/master~4 master
gardez le premier comme pick
et les trois autres sont squash
et ensuite quitter (via c-x c-c dans emacs), j'obtiens :
$ 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
où 2f40 est le pick
commettre. Et maintenant aucun des 4 commits n'apparait dans git log
. Je m'attendais à ce que mon éditeur soit redémarré pour que je puisse saisir un message de validation. Qu'est-ce que je fais de mal ?