Kann ich in Mercurial Commits machen?
Habe ich ein paar begeht, sollte wirklich nur eine. Wenn ich mit git, die ich benutzen würde:
git rebase -i <some-commit-before>
und dann zerquetschen.
Kann ich tun, mercurial? Wenn ja, wie?
Kommentar zu dem Problem
@Ry4an: Danke, habe nicht bemerkt, dass (andere Wortwahl).
Ja, es hat mich eine Weile zu finden, dass man da, Ihre Frage war mehr klar.
InformationsquelleAutor der Frage R. Martinho Fernandes | 2009-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können dies tun, indem mercurial ohne jegliche Erweiterungen durch Die Verkettung Von Differenzmengen.
Alternativ, wenn Sie möchten, verwenden Sie eine Erweiterung, die Sie verwenden könnten:
InformationsquelleAutor der Antwort Ry4an Brase
Mein Favorit ist
hg strip --keep
Befehl. Und dann ich verpflichte mich, alle änderungen in einem commit.Es ist der Schnellste und bequemste Weg für mich, weil ich mag zu tun, viele kleine commits während meiner täglichen Arbeit 😉
Hinweis 1:
strip
braucht eine integrierte Erweiterungmq
aktiviert sein.Hinweis 2: Mein Lieblings-Git/Mercurial-client (SmartGit/Hg) fügt standardmäßig
--keep
parameter währendstrip
. Und was ist noch komfortabler: er bietet eine option namensjoin commits
:]InformationsquelleAutor der Antwort G. Demecki
Den Stellungswechsel-Erweiterung arbeitete wie ein Charme. Squash 2 verpflichtet:
Dot ist eine Abkürzung für die aktuelle revision.
Ist es sogar noch einfacher, wenn Sie ein paar commits auf einem branch und möchten Zusammenbruch Sie alle in eine:
Wie das funktioniert:
(aus http://mercurial-scm.org/wiki/RebaseExtension#Collapsing)
InformationsquelleAutor der Antwort Martin Konicek
evolve
ist eine Erweiterung der mercurial die uns hilft, mit sicher veränderlich Geschichte, es ist noch experimentell, obwohl. Sie können es verwenden, durch das Klonen von seinen repo und das hinzufügen von es in Ihr .hgrc wie diese.Unter der Annahme, dass Sie geklont entwickeln repo in Ihrem home-Verzeichnis. Jetzt sind Sie gut zu gehen. Sie können auch suchen die Hilfe von
hg help fold
.Falten Sie Den Befehl
Sagen Sie
fold
squash/fold eine lineare Kette von commits, die nicht gebrochen ist. Was Falten macht ist, erstellt es eine neue changeset enthält änderungen von den änderungen und markieren Sie alle diejenigen verpflichtet, als veraltet. Sie können ein tiefer Blick in dieses bei docs.Nun angenommen, Sie haben die folgende Geschichte.
Du willst squash
e
,f
undg
. Sie können tun,Wird das Ergebnis
wo
h
ist das changeset enthält änderungen von allen drei commitse
,f
undg
.Können Sie auch Falten Differenzmengen aus der Mitte der Geschichte, d.h. nicht unbedingt, Sie haben zu Holen eine Kette die auch die Spitze. Angenommen, Sie möchten, um Falten
b
,c
undd
. Sie können tun,Dadurch wird
wo
i
ist die gefaltete änderungssatz vonb
,c
,d
undj
ist dem gleichen änderungssatz alsh
.Evolve Bedienungsanleitung zu Lesen ist ein muss.
InformationsquelleAutor der Antwort Pulkit Goyal