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-branchder 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 1funktionierte es also nicht, da es diese verließ f1und f2dazwischen 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 dropgleich 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.