In meinem Fall habe ich meinen Zweig (z. B. meinen Zweig) mit einem anderen Feature-Zweig (Feature-Zweig) zusammengeführt, aber nicht mit dem Master. Meine Branchengeschichte war also so:
my-branch (before merge)
---master----m1----m2----m3---m4
Nach dem Zusammenführen mit einem anderen, feature-branch
der Commits f1, f2
über dem Master hatte, wurde es so:
my-branch (after merge)
---master----m1----m2----f1----f2----m3---m4----mergecommit
Dies ist möglicherweise passiert, weil ich während der Arbeit an meinem Zweig nach zwei Festschreibungen eine Zusammenführung vom Master durchgeführt habe oder einer von zwei Zweigen möglicherweise nicht mit dem Master auf dem neuesten Stand war. In diesem Fall git revert -m 1
funktionierte es also nicht, da es diese verließ f1
und f2
dazwischen festschrieb.
Die Lösung war einfach und funktioniert in normalen Szenarien, in denen wir keine Zwischen-Commits haben:
git rebase -i HEAD~6
Verwenden Sie anstelle von 6 die entsprechende Nummer, basierend auf der Anzahl der Commits in der Vergangenheit, die Sie ändern möchten. Jetzt wird der Vim-Editor geöffnet. Markieren Sie einfach unerwünschte Commits als drop
gleich und beenden Sie das :wq
Programm mit dem Überprüfungsprotokoll:
git log --oneline
Kraft drücken
git push -f
Jetzt sollte sich der Remote-Zweig im vorherigen Status befinden.