Bei einer Änderung, die mit commit
und dann zurückgesetzt mit revert
Wie kann ich diese Rückgängigmachung dann am besten rückgängig machen?
Idealerweise sollte dies mit einem neuen Commit geschehen, um die Geschichte nicht neu zu schreiben.
Bei einer Änderung, die mit commit
und dann zurückgesetzt mit revert
Wie kann ich diese Rückgängigmachung dann am besten rückgängig machen?
Idealerweise sollte dies mit einem neuen Commit geschehen, um die Geschichte nicht neu zu schreiben.
Ich habe es folgendermaßen gemacht:
Wenn der Zweig my_branchname
war in einer Zusammenführung enthalten, die rückgängig gemacht wurde. Und ich wollte die Rückgängigmachung my_branchname
:
Ich mache zuerst eine git checkout -b my_new_branchname
de my_branchname
.
Dann mache ich eine git reset --soft $COMMIT_HASH
donde $COMMIT_HASH
ist der Commit-Hash des Commit-Rechts vor die erste Übertragung von my_branchname
(siehe git log
)
Dann mache ich eine neue Übergabe git commit -m "Add back reverted changes"
Dann schiebe ich den neuen Zweig hoch git push origin new_branchname
Dann habe ich einen Pull-Request für den neuen Zweig erstellt.
Wenn Ihnen die Idee, einen "Revert" rückgängig zu machen, nicht gefällt (vor allem, wenn dies den Verlust von Verlaufsinformationen für viele Commits bedeutet), können Sie jederzeit die Git-Dokumentation über "Eine fehlerhafte Zusammenführung rückgängig machen" .
Bei folgender Ausgangssituation
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E <-- fixed-up topic branch
(W ist Ihre anfängliche Rückgängigmachung der Zusammenführung M; D und E sind Korrekturen an Ihrem anfänglich fehlerhaften Funktionszweig bzw. Ihrer anfänglichen Kommissionsmitteilung)
Sie können nun einfach die Commits A bis E wiederholen, so dass keiner von ihnen zu dem zurückgenommenen Merge "gehört":
$ git checkout E
$ git rebase --no-ff P
Die neue Kopie Ihres Zweigs kann nun in master
wieder:
A'---B'---C'------------D'---E' <-- recreated topic branch
/
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E
Ich hatte ein Problem, dass jemand einen Revert nach Master auf meinen Zweig gemacht hat, aber ich musste in der Lage sein, ihn wieder zusammenzuführen, aber das Problem ist, dass der Revert alle meine Commits einschloss. Betrachten wir den Fall, dass wir unseren Feature-Branch aus M1 erstellt haben, unseren Feature-Branch in M3 zusammenführen und in RM3 revertieren
M1 -> M2 -> M3 -> M4- > RM3 -> M5
\. /
F1->F2 -
Wie kann die F2 in die M5 übergehen?
git checkout master
git checkout -b brach-before-revert
git reset --hard M4
git checkout master
git checkout -b new-feature-branch
git reset --hard M1
git merge --squash brach-before-revert
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.