Ich habe einen Zweig von master mit drei Änderungen und möchte ihn wieder auf master zurückbasen. Zum Beispiel:
$git checkout master
$git branch dev && git checkout dev
$<do 3 commits>
$git checkout master
$git rebase dev -i
Normalerweise würde -i mir die 3 Commits geben und mir erlauben, zu quetschen. In diesem Fall ist es jedoch nur "noop" und wenn die rebase abgeschlossen ist, sehe ich die drei Commits auf Master verschoben. Ich vermute, dass in diesem Fall, da der Vorgänger nicht abgewichen war, ein schneller Vorlauf möglich war, und so ist dies geschehen. Aber ich möchte die Commits zerquetschen.
Ich habe versucht, --no-ff zu verwenden, aber es bewirkt genau dasselbe wie in meinem ursprünglichen Fall (noop + no squashing).
Ich habe auch versucht (im Entwicklungszweig)
$git rebase -i HEAD~3
$git checkout master
$git rebase dev
Aber das ist wirklich mühsam, und ich muss wissen, wie viele Commits ich für den HEAD~X-Teil zerquetschen muss.
Fußnote: Der Grund, warum dies für mich wichtig ist, liegt darin, dass dieser gequetschte Änderungssatz in Gerrit überprüft werden soll. Wenn sie getrennt sind, wird die Überprüfung unmöglich.