¿Qué es una rama git "rancia"?

133

Una rama git "obsoleta" es un término que he escuchado mucho. Sé que tiene algo que ver con ramas que se consideran menos útiles o inútiles, pero no pueden encontrar una definición exacta. ¿Qué es una rama git "rancia"?

cowlinator
fuente

Respuestas:

96

La referencia más antigua a "obsoleto" se encuentra en commit e194cd1 (enero de 2007, Git 1.5.0), que detectó " ramas de seguimiento obsoletas en remoto ": al rastrear una rama que fue eliminada por el sistema remoto.
Por lo tanto git remote prune.

Esa es la definición principal para la rama obsoleta: una rama de seguimiento remoto (una referencia local de una rama de repositorio remota) que ya no rastrea nada (porque la rama real en el repositorio remoto ha desaparecido).

git remote show es capaz de enumerarlos.


Por cierto, tiene otras dos definiciones de "obsoleto" en el sistema Git:

  • Otra referencia a "obsoleto" implica git reflog --stale-fixen commit 1389d9d (Git 1.5.0), para rastrear " commit roto ": un commit al que no se puede acceder desde ninguna de las referencias y falta un objeto entre los objetos commit, tree u blob accesible desde ella que no es accesible desde ninguna de las referencias.
    Eso ayuda a solucionar la situación después de ejecutar un registro no reflog git prunedesde un git anterior en presencia de reflogs.

  • Commit 740fdd2 (marzo de 2008, Git 1.5.5) también introduce "obsoleto" para las referencias simbólicas , cuando la referencia a la que apuntan ya no existe.


Según lo mencionado por @SteelToe: La definición de una rama obsoleta, según la documentación de GitHub , es una rama que no ha tenido ningún compromiso en los últimos 3 meses.
Esto generalmente indica una rama antigua / no mantenida / no actual.

VonC
fuente
Vi esto cuando estaba presionando hacia un origen remoto completamente nuevo, porque no tenía ninguna de mis ramas (obviamente).
Noumenon
"una rama de seguimiento remoto" <- cuando dices esto, me hace pensar que estás hablando de una rama que existe en el repositorio remoto, pero lo que quieres decir es una rama remota que has rastreado localmente antes, pero "la rama real en el repositorio remoto se ha ido" ¿verdad?
Miel
@Honey (algunos meses tarde) Sí, esa es la idea. He actualizado la respuesta para agregar un enlace que ilustra qué es una rama de seguimiento remoto.
VonC
17

Eso es porque no hay una "definición exacta". "Rama git obsoleta", "datos obsoletos", "opciones de configuración obsoleta": ninguno de estos tiene una definición exacta , pero todos se refieren a cosas que se consideran antiguas / no mantenidas / no actuales / posiblemente rotas.

Por lo tanto, una "rama obsoleta de git" es generalmente una rama del repositorio que no se ha tocado en mucho tiempo. Tal vez está roto, tal vez no; ciertamente no es actual w / r / t para la rama de desarrollo activo, y nadie lo ha mirado por un tiempo.

larsks
fuente
12
En github, las ramas no actualizadas en los últimos 3 meses se consideran obsoletas: help.github.com/articles/viewing-branches-in-your-repository
Ludovic
3

La rama obsoleta es una rama sin actividad después de un tiempo. En Github está rancio después de 3 meses de inactividad.

Motivos por los que los proyectos tienen ramas obsoletas: características inéditas, prototipo, solución alternativa, incompleta, incompatible.

Lee mas

v.babak
fuente