Was tun mit Branch nach dem Zusammenführen?


Antworten:


410

Nach dem Zusammenführen ist es sicher, den Zweig zu löschen:

git branch -d branch1

Außerdem warnt git Sie (und lehnt es ab, den Zweig zu löschen), wenn es denkt, dass Sie ihn noch nicht vollständig zusammengeführt haben. Wenn Sie einen Zweig (mit git branch -D), der noch nicht vollständig zusammengeführt wurde, zwangsweise löschen , müssen Sie einige Tricks ausführen, um die nicht zusammengeführten Commits zurückzugewinnen (siehe unten).

Es gibt jedoch einige Gründe, einen Zweig zu behalten. Wenn es sich beispielsweise um einen Feature-Zweig handelt, möchten Sie möglicherweise Bugfixes für dieses Feature durchführen können, das sich noch in diesem Zweig befindet.

Wenn Sie den Zweig auch auf einem Remote-Host löschen möchten, haben Sie folgende Möglichkeiten:

git push origin :branch1

Dadurch wird der Zweig auf der Fernbedienung zwangsweise gelöscht (dies wirkt sich jedoch nicht auf bereits ausgecheckte Repositorys aus und hindert niemanden mit Push-Zugriff daran, ihn erneut zu pushen / zu erstellen).


git reflogzeigt die kürzlich ausgecheckten Revisionen. Dort wird auch jeder Zweig angezeigt, den Sie im letzten Repository-Verlauf ausgecheckt haben. Abgesehen davon git fsckwird es das Werkzeug der Wahl in jedem Fall von Commit-Loss in Git sein.


Wenn Sie den Zweig speichern möchten, können Sie vor dem Löschen ein Tag erstellen. Wenn Sie zu diesem Punkt zurückkehren möchten, können Sie dieses Tag auschecken.
Joqus

3
@ Joqus Ich würde eher vorschlagen, es in diesem Fall als Zweig zu behalten. Veröffentlichen Sie es einfach nicht.
Jonas Schäfer

Nur für den Fall - wenn Sie den Zweig vor dem Löschen "vollständig zusammenführen" möchten, drücken Sie diesen Zweig nach dem Zusammenführen, aber vor dem Löschen. So etwas wiegit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
Avtomaton

25

Ich bevorzuge RENAME anstatt DELETE

Alle meine Zweige sind in Form von benannt

  • Fix/fix-<somedescription> oder
  • Ftr/ftr-<somedescription> oder
  • usw.

Mit Turm als meine git Frontend organisiert sie fein säuberlich alle die Ftr/, Fix/, Test/usw. in Ordnern.
Sobald ich mit einem Zweig fertig bin, benenne ich sie in um Done/...-<description>.

Auf diese Weise sind sie immer noch da (was nützlich sein kann, um den Verlauf bereitzustellen) und ich kann jederzeit zurückgehen und wissen, was es war (Feature, Fix, Test usw.).


4
Benennen Sie auch die Remote-Zweige um?
VitalyB

21
Es scheint überflüssig , diese Zweige zu behalten und verrückt, sie umzubenennen . Vermisse ich hier etwas? Sie können den Zweig jederzeit neu erstellen. stackoverflow.com/questions/3640764/…
ksav

Es macht keinen Sinn, Zweige zu behalten, nachdem sie zusammengelegt wurden
Rastaman

2
+1 für die Idee, in Fix, Test and Done umzubenennen ... Wenn Sie Filialen behalten, werden Auftragnehmer für mein Unternehmen bezahlt.
jpfreire

1

Wenn Sie fortfahren und den Zweig nach dem Zusammenführen LÖSCHEN. Kümmere dich einfach
um
Alle Hyperlinks URLs Referenzen deiner DELETED Filialen, werden GEBROCHEN .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.