2012-12-22 3 views
198

Ich hatte zwei Zweige: master und branch1. Ich habe gerade branch1 zurück in master fusioniert und ich bin mit diesem Zweig fertig. Soll ich es löschen oder einfach rumsitzen lassen? Wird das Löschen einen Datenverlust verursachen?Was tun mit der Verzweigung nach der Zusammenführung

+0

Siehe auch: [So verwenden Sie git merge --squash?] (Http://stackoverflow.com/q/5308816/562769) –

Antwort

253

Nach der Zusammenführung ist es sicher um den Zweig zu löschen:

git branch -d branch1 

Zusätzlich git wird Sie warnen (und sich weigern, den Zweig zu löschen), wenn er denkt, dass Sie nicht in vollem Umfang es noch fusionieren hat. Wenn Sie einen Zweig (mit git branch -D), der noch nicht vollständig zusammengeführt ist, zwangsweise löschen, müssen Sie ein paar Tricks machen, um die nicht eingebundenen Commits zurückzubekommen (siehe unten).

Es gibt einige Gründe, einen Zweig herum zu halten. Wenn es sich zum Beispiel um einen Feature-Zweig handelt, möchten Sie vielleicht in der Lage sein, Bugfixes für dieses Feature noch in diesem Zweig auszuführen.

Wenn Sie auch den Zweig auf einem Remote-Host löschen möchten, können Sie tun:

git push origin :branch1 

Dies wird den Zweig auf der Fernbedienung gewaltsam löschen (dies wirkt sich nicht auf bereits abgemeldeten repositiories obwohl und gewonnen t verhindern niemanden mit Push-Zugriff, um ihn erneut zu senden/zu erstellen).


git reflog zeigt die kürzlich Revisionen ausgecheckt. Jeder Zweig, den Sie im letzten Repository-Verlauf ausgecheckt haben, wird ebenfalls dort angezeigt. Abgesehen davon, git fsck wird das Werkzeug der Wahl bei jedem Fall von Commit-Verlust in Git sein.

+0

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 als Zweig in diesem Fall zu halten. Einfach nicht veröffentlichen. –

18

Alle meine Zweige werden in Form von Fix/fix- oder Ftr/ftr- usw. benannt. Mit Tower als meine Git-Front-End organisiert es ordentlich alle Ftr /, Fix /, Test/etc. in Ordnern. Sobald ich mit einer Verzweigung fertig bin, benenne ich sie in Fertig/... um. Auf diese Weise sind sie immer noch da (was praktisch sein kann, um Geschichte zu liefern) und ich kann immer zurückgehen, wenn ich weiß, was es war (Feature, Fix, Test etc .)

Verwandte Themen