Dies kann, indem Sie ein interaktives Fütterungsmaterial erfolgen.
Wenn Sie Zweig haben master
bei A
, begehen und dann erstellt verzweigen Sie my-branch
mit begeht B
, C
, D
, E
und F
. Sie möchten die Commits B
, C
und in B'
zerlegen.
stellen Sie sicher, Ihren aktueller Zweig ist my-branch
, und starten Sie ein interaktives Fütterungsmaterial:
git rebase -i master
Dies wird Ihren Editor mit der Liste der Commits öffnen, die auf gehandelt werden. Jede Zeile repräsentiert einen Commit, und das erste Wort in dieser Zeile gibt den Befehl an, der bei diesem Commit ausgeführt werden soll. Belassen Sie das erste Festschreiben (B
) als , und ändern Sie die Befehle für die nächsten beiden Festschreibungen (C
und) in squash
. Speichern und schließen Sie den Editor.
Nach git beendet Verarbeitung B
verpflichtet, C
und D
ein neuer Editor mit einer Commit-Nachricht für das neue begehen B'
eröffnen wird. Dies wird eine Kombination der Commit-Nachrichten von den ursprünglichen Commits enthalten, aber Sie können es zu dem ändern, was Sie möchten. Sobald die Commit-Nachricht wie gewünscht ist, speichern und schließen Sie den Editor.
Sobald git hat die Verarbeitung der Rest der Commits auf Zweig fertig my-branch
, verpflichtet auf my-branch
wird B'
, E
und F
sein.
Beachten Sie, dass Sie eine Rebase nur ausführen sollten, wenn Sie Ihre Commits nicht gedrängt haben. Rebasing verändert die Hashes Ihrer Commits, was zu Problemen führen kann, wenn jemand anderes die ursprünglichen Commits bereits gezogen hat.
die Antwort ist genau das gleiche wie in der Frage, die Sie –
angeben Sie haben Recht @ChrisMaes, nicht realisiert, danke – vaskort