Anstatt alles auszulöschen, warum nicht auslöschen genau die eine schlechte merge?
Mercurial ermöglichen s Sie zu entfernen eine Revision, vorausgesetzt, Sie entfernen auch alle Commits, die Nachkommen dieser Revision sind. Dies ist eine Erweiterung, aber es ist mit allen modernen Versionen von Mercurial (seit 2.8) gebündelt, so dass Sie es nur aktivieren müssen, indem Sie strip =
zu Ihrem [extensions]
Abschnitt Ihrer Konfiguration hinzufügen.
Das Zusammenführen (und dann das Zusammenführen der Zusammenführung) erstellt eine Revision. Sie sagen (ich denke), dass Sie zuerst hg merge <correct thing>
ausgeführt und committed, dann lief hg merge <incorrect thing>
und verpflichtet.
In diesem Fall ist die letzte Revision die falsche, die Sie entfernen möchten. Dies würde alle Revisionen entfernen, die ebenfalls von der Zusammenführung abstammen, aber wenn das letzte, was Sie getan haben, hg merge <incorrect thing> && hg commit
war, gibt es sowieso keine solchen Revisionen.
Also, herauszufinden, was die falsche Revisionsnummer ist-Lauf hg log
, um zum Beispiel die letzten Revisionen zu sehen-und dann hg strip -r <wrongrev>
laufen. Dadurch wird diese Revision (und alle ihre Nachkommen) entfernt.
Siehe auch https://www.mercurial-scm.org/wiki/StripExtension und this answer bis Mercurial — revert back to old version and continue from there.
Dies ist eine professionelle Website. Lassen Sie uns bitte die Sprache sauber und sicher für die Arbeit halten. –