Dies gibt eine gute Erklärung für das Quetschen mehrerer Commits:
http://git-scm.com/book/en/Git-Branching-Rebasing
Es funktioniert jedoch nicht für Commits, die bereits gepusht wurden. Wie quetsche ich die letzten Commits sowohl in meinen lokalen als auch in meinen Remote-Repos?
BEARBEITEN: Wenn ich das tue git rebase -i origin/master~4 master
, behalte den ersten als pick
, setze die anderen drei als squash
und beende dann (über cx cc in emacs), ich bekomme:
$ 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
Dabei ist 2f40 das pick
Commit. Und jetzt erscheint keines der 4 Commits in git log
. Ich habe erwartet, dass mein Editor neu gestartet wird, damit ich eine Commit-Nachricht eingeben kann. Was mache ich falsch?
git push --force origin master