Git Squash Commit mitten in einer Filiale

Ich möchte mehrere Commits in der Mitte eines Zweigs zusammenpressen, ohne die Commits davor und danach zu ändern.

Ich habe

A -- B -- C -- D -- E -- F -- G
|                             |
master                        dev
origin/master

Ich möchte das in @ quetsch

A -- H -- E -- F -- G
|                   |
master              dev
origin/master

WoH ist äquivalent zuB -- C -- D. Und ich möchte in der Lage sein, die Commit-Nachricht von @ anzugebH. A ist das letzte Festschreiben, das gesendet wurde, sodass alle nachfolgenden Festschreibungen neu geschrieben werden können, ohne den Server zu beschädigen. Die Idee ist, die Geschichte zu bereinigen, bevor ich vorspulemaster.

Wie kann ich das machen

PS: Beachten Sie, dass ich in meinem Fall tatsächlich viel mehr als 3 Commits habe, um in der Mitte zu quetschen, aber wenn ich es mit 3 machen kann, sollte ich in der Lage sein, es mit mehr zu machen.

PPS: Außerdem würde ich, wenn möglich, eine Lösung vorziehen, bei derE, F undG bleiben unberührt (hauptsächlich in Bezug auf das Festschreibungsdatum).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage