Cela donne une bonne explication de l'écrasement de plusieurs validations:
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 écraser les dernières validations dans mes référentiels local et distant?
EDIT: Quand je le fais git rebase -i origin/master~4 master
, conservez le premier comme pick
, définissez les trois autres comme squash
, puis quittez (via cx cc 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
commit. Et maintenant, aucun des 4 commits n'apparaît 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 mal?
git push --force origin master