Was ist ein "abgestandener" Git-Zweig?

133

Ein "abgestandener" Git-Zweig ist ein Begriff, den ich schon oft gehört habe. Ich weiß, dass es etwas mit Zweigen zu tun hat, die als weniger nützlich oder nutzlos angesehen werden, aber keine genaue Definition finden können. Was ist ein "abgestandener" Git-Zweig?

Cowlinator
quelle

Antworten:

96

Der älteste Verweis auf "veraltet" befindet sich in Commit e194cd1 (Jan. 2007, Git 1.5.0), in dem " veraltete Verfolgungszweige in Remote " erkannt wurden : beim Verfolgen eines Zweigs, der vom Remote-System entfernt wurde.
Daher git remote prune.

Dies ist die Hauptdefinition für einen veralteten Zweig: ein Remote-Tracking-Zweig (eine lokale Referenz eines Remote-Repo-Zweigs), der nichts mehr verfolgt (da der eigentliche Zweig des Remote-Repos nicht mehr vorhanden ist).

git remote show kann diese auflisten.


Übrigens haben Sie zwei weitere Definitionen von "veraltet" im Git-System:

  • Ein weiterer Hinweis auf „abgestanden“ beinhaltet git reflog --stale-fixin begehen 1389d9d (Git 1.5.0), für die Verfolgung von „ gebrochen begehen “: eine Festschreibung , dass nicht erreichbar von einem des Refs ist , und es ist ein fehlendes Objekt unter den begehen, einen Baum oder Blob - Objekte von dort aus erreichbar, die von keinem der Schiedsrichter erreichbar ist.
    Dies hilft bei der Behebung der Situation, nachdem git pruneein älterer Git bei Vorhandensein von Reflogs nicht reflog- fähig ausgeführt wurde.

  • Commit 740fdd2 (März 2008, Git 1.5.5) führt auch "veraltet" für symbolische Verweise ein , wenn der Verweis , auf den sie verweisen, nicht mehr vorhanden ist.


Wie von @SteelToe erwähnt: Die Definition eines veralteten Zweigs gemäß der GitHub-Dokumentation ist ein Zweig, der in den letzten 3 Monaten keine Commits hatte.
Dies weist im Allgemeinen auf einen alten / nicht gepflegten / nicht aktuellen Zweig hin.

VonC
quelle
Ich habe das gesehen, als ich auf einen brandneuen Remote-Ursprung umgestiegen bin, weil dort (offensichtlich) keiner meiner Zweige war.
Noumenon
"ein Remote-Tracking-Zweig" <- Wenn Sie dies sagen, denke ich, dass es sich um einen Zweig handelt, der im Remote-Repo vorhanden ist, aber Sie meinen einen Remote-Zweig, den Sie zuvor lokal verfolgt haben, aber "Der eigentliche Zweig auf dem Remote-Repo ist weg", oder?
Honey
@Honey (ein paar Monate zu spät) Ja, das ist die Idee. Ich habe die Antwort aktualisiert, um einen Link hinzuzufügen, der zeigt, was ein Remote-Tracking-Zweig ist.
VonC
67

Die Definition eines veralteten Zweigs gemäß der GitHub-Dokumentation ist ein Zweig, der in den letzten 3 Monaten keine Commits hatte.

Dies weist im Allgemeinen auf einen alten / nicht gepflegten / nicht aktuellen Zweig hin.

Weitere Informationen finden Sie unter https://help.github.com/articles/viewing-branches-in-your-repository/

SteelToe
quelle
17

Das liegt daran, dass es keine "genaue Definition" gibt. "Veralteter Git-Zweig", "veraltete Daten", "veraltete Konfigurationsoptionen" - keine davon hat eine genaue Definition, aber alle beziehen sich auf Dinge, die als alt / nicht gewartet / nicht aktuell / möglicherweise defekt gelten.

Ein "veralteter Git-Zweig" ist also im Allgemeinen ein Zweig des Repositorys, der seit langem nicht mehr berührt wurde. Vielleicht ist es kaputt, vielleicht auch nicht; Es ist sicherlich nicht aktuell w / r / t für den aktiven Entwicklungszweig, und niemand hat es eine Weile angeschaut.

Larsks
quelle
12
Auf Github gelten Filialen, die in den letzten 3 Monaten nicht aktualisiert wurden, als veraltet: help.github.com/articles/viewing-branches-in-your-repository
Ludovic Ronsin
3

Veralteter Zweig ist ein Zweig, der nach einiger Zeit keine Aktivität mehr aufweist. In Github ist es nach 3 Monaten Inaktivität abgestanden.

Gründe, warum Projekte veraltete Zweige haben: unveröffentlichte Funktionen, Prototyp, alternative Lösung, unvollständig, inkompatibel.

Weiterlesen

v.babak
quelle