2012-04-20 6 views
52

Ich möchte ein Festschreiben machen und seine Filiale, schließen, ohne es aus der Geschichte zu entfernen.Wie man einen Zweig schließt, ohne es aus dem Verlauf in Git zu entfernen?

Mit mercurial würde ich commit --close-branch, dann update zu einem vorherigen, und weiter arbeiten. Mit git ... Ich bin verwirrt.

+1

_Needless zu sagen, nach diesen Schlüsselwörtern zu suchen, fand ich meistens umgekehrt, dh Leute, die Sachen aus der Geschichte entfernen wollen. –

+1

Ich denke, was das verwirrend macht, ist die Terminologie. In git glaube ich nicht, dass du jemals einen Zweig schließt. Was genau macht "close-branch" im mercurial? – MikaelHalen

+2

Ein genialer Effekt beim Schließen eines Zweiges in mercurial ist: Niemand kann weiter auf diesen Kopf drücken. - Gibt es dafür einen Weg? –

Antwort

70

Es gibt kein exaktes Äquivalent zum Schließen einer Verzweigung in Git, da Git-Zweige leichter sind als in Mercurial. Ihr Mercurial-Äquivalent ist mehr Lesezeichen als Zweige.

Wenn ich es richtig verstehe, schließt das Schließen einer Verzweigung in Mercurial grob aus der Verzweigungsliste, so dass Sie dasselbe erreichen können, indem Sie es archivieren. Ein usual practice ist seine Spitze als Archiv zu markieren und löschen es:

git tag archive/<branchname> <branchname> 
git branch -d <branchname> 
git checkout master 

Die Niederlassung wird, werden gelöscht und kann später den Tag, indem Sie aus abgerufen werden, und Neuerstellung der Zweig:

git checkout archive/<branchname> 
git checkout -b new_branch_name 
+0

Zumindest in git 1.9.1 musste ich 'git branch -D' anstelle von' -d' verwenden. –

+0

Das -D ist erforderlich, wenn der entsprechende Zweig noch nicht vollständig mit dem Master verbunden wurde. – Simeon