2013-10-21 15 views
5

Unser Team ist vor kurzem nach Git umgezogen. Ich wurde ein paar Mal verbrannt, weil mein Kabeljau irgendwie nicht im Entwicklungszweig war, wie ich es wollte. Seitdem habe ich aufgehört, die Zweige zu löschen, die ich jeden Tag mache, um an Code zu arbeiten, falls ich diese Zweige später brauche.Git: Speichern von alten Filialen

Ich habe jetzt viele Zweige, die ich nicht jeden Tag in SourceTree betrachten möchte. Allerdings möchte ich diese Zweige nur für den Fall speichern. Gibt es irgendeine Möglichkeit, meine alten Zweige zu retten, aber sie beiseite zu legen, um mein Git-Repository nicht zu verschmutzen?

+3

möglich Duplikat von [Wie kann ich git Zweige archivieren?] (Http://StackOverflow.com/questions/1307114/How-Can-I-Archiv-Git-Branches) – CharlesB

+0

Yep, obwohl ich argumentieren würde drängen zu Ein Archiv Repo, so dass Sie nur die lokalen Niederlassungen löschen können, ist die bessere Antwort dort, für mein Geld überschüssige Tags sind noch mehr ein Schmerz als überschüssige Zweige. – jthill

Antwort

3

Verzweigungen sind da, wenn Sie diesen Zweig weiter entwickeln und weiterentwickeln wollen. Wenn dies nicht der Fall ist und Sie die Zweige nur als Lesezeichen speichern, sollten Sie stattdessen Tags verwenden (und die Zweige löschen).

Auf diese Weise wird git branch -a sauberer aussehen. Und wenn Sie eines Tages zurückgehen möchten, um zu sehen, wie dieser Zweig aussieht, können Sie immer das Tag auschecken und schließlich einen Zweig basierend auf diesem Tag erstellen.

0

Eine einfache Sache, die ich mir vorstellen kann, ist zu sehen, ob Sie SourceTree mit verschiedenen Ansichten konfigurieren können - eine, um nur den aktiven Zweig anzuzeigen, und den anderen, um alle Zweige anzuzeigen.

EDIT: Dies zeigt Ihnen immer noch alle Zweige, die in den aktiven Zweig zusammengeführt wurden. Wenn Sie viele alte Zweige in der aktiven Zweigansicht haben, würde ich die Notwendigkeit für Sie in Frage stellen, sie trotzdem zu behalten. Git zeichnet alle Commits auf, die zu Ihrem aktiven Zweig führen, einschließlich Zusammenführungen. Wenn Sie also die alten Zweige behalten möchten, um zu sehen, wo ein Fehler aufgetreten ist, haben Sie Glück. Löschen Sie einfach alle diese Zweige und verwenden Sie git bisect. Wenn der Grund, warum Sie sie wollen, die Veröffentlichung von Releases ist, dann würde ich Ihnen empfehlen, sich git flow anzuschauen.

Der Grund, warum ich dies vorschlage ist, dass die Anzahl der Zweige kein Problem für Git ist, sondern für Sie. Wenn diese alten Zweige aus Ihrer Sicht auf Ihr Repository verschwinden würden, würden sie Sie nicht stören. Sie werden Git nicht in irgendeiner Weise verlangsamen. Die Tatsache, dass Sie sie auch archivieren wollen, sagt mir, dass Sie vielleicht zurückkommen und sie anschauen möchten. Wechseln Sie einfach zwischen zwei Ansichten Ihres Repositorys.

Ich habe SourceTree nicht ausgiebig verwendet, daher weiß ich nicht, ob es verschiedene Ansichten unterstützt. Ich weiß, Gitk tut: gitk und gitk --all. Ich würde erwarten, dass SourceTree dasselbe tut.

Hoffe, das hilft.

0

In meinem Workflow lösche ich Filialen mit git -d branchname Dies wird den Zweig nicht löschen, wenn es noch nicht in einen anderen Zweig (zumindest in meiner Git-Version, müssen Sie möglicherweise aktualisieren?), Und wenn es tut soso, ich halte den Zweig für später.

Wenn ich sicher bin, dass ich einen Zweig absolut loswerden möchte, verwende ich git -D branchname, die sich nicht darüber beschweren wird, nicht zusammengeführt zu werden.

0

Dies scheint immer noch eine Frage der Präferenz zu sein. Ich bevorzuge es, diese Zweige so zu behalten, dass ich durch Betrachten des Git-Logs leicht die Frage "Warum der Code vor einer Woche verzweigt" beantworten kann, ohne alle Commit-Nachrichten zu lesen und zu versuchen zu verstehen, was sie verbindet.