Ich habe eine Reihe von dummen Schritten mit meine lokale Kopie unserer gemeinsamen Repository, und ich bin auf der Suche nach einem Weg, wie etwas reparieren. Die Schritte sind:Wie zu pushen, ohne neue Köpfe zu erstellen, nach dem Erstellen Multi-Head-Zweig, Rebase und mehrere Merges
ich Lesezeichen mehrere Köpfe einer Entwicklungszweig, dass andere Menschen benutzen verwendet haben:
-o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
Ich habe eine neue Filiale, noch lokal, einige Zeit später
/---------------x <- new branch -o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
für einen Kopf, dass nur meinen Code enthält, habe ich ein Fütterungsmaterial auf einem anderen Zweig
/-1'--1'-- <- rebase /---------------x <- new branch -o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
dann fusionierte ich das Fütterungsmaterial, und dann ein paar Commits später, ich fusionierte Standard
----------d-\ <-default \ /-1'--1'\ \ /---------------x--------x--x-x-x-- <- new branch -o---o---o-----o--- \----1----1------
Nun wollte ich meine neue Filiale an den Server (hg push --new-branch -b newBranch
) drücken , aber ich bekomme abort: push creates new remote head
, da commits 1'
Dev Zweig gehören.
Was ist das Richtige? Ich möchte diesen zusätzlichen Kopf vermeiden.
aktualisieren:
pro Anfrage, dies ist die Ausgabe von hg heads
:
changeset: 839:f2033d695fcd <- want to push this
branch: newBranch
tag: tip
user: me
date: Wed Oct 31 13:05:51 2012 +0100
changeset: 826:7fde19d7f467
branch: devBranch
user: my-collegue
date: Tue Oct 23 14:59:42 2012 +0200
changeset: 820:23853bbf68df <- the part after rebase that got merged
branch: devBranch
user: me
date: Mon Oct 22 15:36:26 2012 +0200
changeset: 807:899344cfb145 <- obsolete (branch with 1's)
branch: devBranch
parent: 711:454f29c03fb1
user: me
date: Mon Oct 22 15:36:26 2012 +0200
changeset: 712:d5e8a62a7f5f <- default, needs to stay
parent: 648:2bbcc01aa191
user: me
date: Wed Aug 22 16:21:09 2012 +0200
Verwenden Sie nicht freihändig "Zeichnung" - Sie haben Konsolenbefehle und die Fähigkeit, Befehle in Frage zu stellen ** formatiert ** ('hg log' oder' hg glog' für Baum hier und bei http: // stackoverflow.com/questions/11982648/reassigning-local-commits-to-a-different-branch-in-mercurial, zum Beispiel). Für jetzt, bitte, fügen Sie die Ausgabe von 'hg heads' mit Kommentar hinzu - welcher Kopf ist veraltet und darf nicht existieren (total oder nur in push-target). Lesen Sie auch über -r Option im Push-Befehl –
Hallo @LazyBadger, kann ich nicht die Ausgabe von "log", da es viel mehr Commits als ich beschrieben, und ich habe auch vergessen, die genauen Befehle, die ich ausgeführt, um zu bekommen dieser Zustand ... Frage aktualisiert, um die Ausgabe von Köpfen zu enthalten. Ich verstehe Ihren Hinweis auf die Option "-r" nicht, wie/warum sollte es helfen? –
exakte Befehle werden in diesem Fall nicht benötigt - ** Sie ** (nicht ich) müssen den Baum von devBranch sehen (von gemeinsamen Eltern von 807 und 820 bis 826), definieren Sie die * Möglichkeit * (und * Notwendigkeit *) von fusionieren devBranchs Köpfe. Oder einfach 'push -r f2033d695fcd' wird genug sein –