Qu'est-ce qu'une branche git «périmée»?


133

Une branche git "Stale" est un terme que j'ai beaucoup entendu. Je sais que cela a quelque chose à voir avec des branches qui sont considérées comme moins utiles ou inutiles, mais je ne trouve pas de définition exacte. Qu'est-ce qu'une branche git "périmée"?

Réponses:


96

La référence la plus ancienne à «périmé» se trouve dans le commit e194cd1 (janvier 2007, Git 1.5.0), qui a détecté des « branches de suivi périmées dans remote »: lors du suivi d'une branche qui a été supprimée par le système distant.
Par conséquent git remote prune.

C'est la définition principale de la branche périmée: une branche de suivi à distance (une référence locale d'une branche de dépôt distant) qui ne suit plus rien (car la branche réelle sur le dépôt distant a disparu).

git remote show est en mesure de les énumérer.


Incidemment, vous avez deux autres définitions de «périmé» dans le système Git:

  • Une autre référence à "stale" implique git reflog --stale-fixdans commit 1389d9d (Git 1.5.0), pour le suivi de " commit cassé ": un commit qui n'est accessible depuis aucune des refs et il y a un objet manquant parmi les objets commit, tree ou blob accessible à partir de celui-ci qui n'est accessible à partir d'aucune des références.
    Cela aide à corriger la situation après avoir exécuté une non-prise en compte git prunede reflog à partir d'un ancien git en présence de reflogs.

  • Commit 740fdd2 (mars 2008, Git 1.5.5) introduit également «périmé» pour les références symboliques , lorsque la référence qu'elles désignent n'existe plus.


Comme mentionné par @SteelToe: La définition d'une branche obsolète, selon la documentation GitHub , est une branche qui n'a pas eu de commits au cours des 3 mois précédents.
Cela indique généralement une branche ancienne / non maintenue / non actuelle.


J'ai vu cela lorsque je poussais vers une toute nouvelle origine distante, car il n'y avait aucune de mes branches dessus (évidemment).
Noumenon le

"a remote tracking branch" <- quand vous dites cela, cela me fait penser que vous parlez d'une branche qui existe dans le repo distant, mais ce que vous voulez dire est une branche distante que vous avez déjà suivie localement , mais "la branche réelle sur le repo distant a disparu", non?
Honey

@Honey (quelques mois de retard) Oui, c'est l'idée. J'ai mis à jour la réponse pour ajouter un lien qui illustre ce qu'est une branche de suivi à distance.
VonC le


17

C'est parce qu'il n'y a pas de «définition exacte». "Branche git périmée", "données périmées", "options de configuration périmées" - aucune de ces options n'a de définition exacte , mais elles se réfèrent toutes à des choses considérées comme anciennes / non maintenues / non actuelles / éventuellement cassées.

Ainsi, une "branche git périmée" est généralement une branche du dépôt qui n'a pas été touchée depuis longtemps. Peut-être qu'il est cassé, peut-être pas; ce n'est certainement pas courant dans la branche de développement actif, et personne ne l'a regardé depuis un moment.


12
Sur github, les branches non mises à jour au cours des 3 derniers mois sont considérées comme obsolètes: help.github.com/articles/viewing-branches-in-your-repository
Ludovic Ronsin

3

La branche périmée est une branche sans activité après un certain temps. Dans Github, il est périmé après 3 mois d'inactivité.

Raisons pour lesquelles les projets ont des branches obsolètes: fonctionnalités inédites, prototype, solution alternative, incomplète, incompatible.

Lire la suite

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.