Ich habe einen Feature-Zweig erstellt, sagen wir mal feature/branch1
auf github. Ich habe eine Pull-Anfrage dafür erstellt und diese zusammengeführt.
Als es unsere Pipeline erreichte, dachten wir, dass es ein Problem gibt und wir haben es mit der Schaltfläche "Zurücksetzen" auf Git zurückgesetzt. Dadurch entstand eine "Zurücksetzen" -PR, die wir mit dem Master zusammengeführt haben und alles war in Ordnung.
Nach ein paar Wochen posteten wir andere PRs, die mit dem Master zusammengeführt wurden, und dachten, wir würden revert-the-revert . Dieses Mal gingen wir in den Revert PR, der geschlossen wurde, und versuchten erneut, den Revert-Button zu verwenden. Aber wir haben diese Fehlermeldung bekommen
Sorry, this pull request couldn’t be reverted automatically.
It may have already been reverted, or the content may have changed since it was merged.
Wie kann ich diese Wiederherstellung durchführen?
Die idealste Situation, die ich haben möchte, ist, einen neuen Zweig zu haben, der die Rückgängigmachung der Rückgängigmachung enthält, damit ich weitere Änderungen vornehmen und den PR-Prozess wiederholen kann.
Der Fehler, den Sie sehen, ist eine künstliche Überprüfung von Github, die ich persönlich nicht brauche. Sie können die Wiederherstellung dann lokal rückgängig machen:
git fetch Origin master
git checkout Origin/master (or reset)
git revert <REVERT HASH>
git Push Origin master
Dies sollte erfolgreich sein, Modulo-Konflikte mit Änderungen seit dem Zurücksetzen.
PS: Eigentlich könnte der Fehler auf Konflikte zurückzuführen sein.
Was Sie ausprobieren können, ist:
git reset --hard old_commit
) diesen PR-Zweig zu dem Commit, zu dem du zurückkehren möchtest (dem, das zurückgesetzt wurde)git Push --force
) diesen Zweig: Dadurch wird das PR aktualisiertAuf diese Weise wird die PR erneut mit dem alten Commit ausgeführt.
Dies ist eine Zusammenführungsverpflichtung. Die PR ist bereits geschlossen und zusammengeführt.
Wenn Sie diesen alten PR-Zweig abgerufen haben, können Sie Folgendes tun:
git log
darauf (git log Origin/old_pr_branch
)ein neuer Zweig aus dem alten SHA1-Commit, der den Inhalt darstellt, den Sie jetzt möchten
git checkout -b new_pr_branch old_sha1
ein Push to Origin
git Push -u Origin new_pr_branch
Sie können dann aus diesem neuen Zweig eine neue PR mit dem richtigen Inhalt erstellen.