¿Por qué "git describe" muestra una versión de label más antigua en mi copy limpia de git repo?

Algunos antecedentes:

Actualmente tengo dos repos locales de GIT que apuntan al mismo proyecto de origen / maestro. La razón por la que tengo dos repositorys git es para tener una copy maestra limpia que pueda usar cada vez que lo necesite y la única copy que mi caja de arena donde puedo aplicar cambia, confirma, etc. Probablemente sea exagerada, pero hay algunas ventajas para mí personalmente al tener una copy de git local duplicada.

Un compañero de trabajo originalmente creó una label liviana para 1.0.2, pero la eliminamos y la labelmos nuevamente como una versión anotada con el mismo número. Cometieron el cambio mediante git push al repository remoto. Saqué los últimos cambios en mis dos instancias git locales.

Nuestras tags son las siguientes:

release-1.0.0 release-1.0.1 release-1.0.2 

El problema:

Aquí está el problema que no puedo resolver. Mi repository de sandbox muestra la última versión de la label (versión-1.0.2) cuando ejecuto " git describe ". Esto es lo que esperaba. Sin embargo, la copy de repo limpio, de la que solo realizo extracciones, muestra la label más antigua (versión-1.0.1) cuando ejecuto " git describe ". Verifiqué que ambos están apuntando al maestro de origen. Investigué un poco más y encontré una solución de sobreaplicación que me indicó ejecutar "git cat-file -t". Aquí está la diferencia que noté:

 git cat-file -t release-1.0.1 --> tag git cat-file -t release-1.0.2 --> commit 

¿Por qué mi repository de copy limpia muestra una versión de label más antigua cuando ejecuto " git describe " a diferencia de mi repository de sandbox? Puedo confirmar que puedo ver el lanzamiento de la versión 1.0.2 si ejecuto " git describe --tags " en la copy de repository limpio.

Un compañero de trabajo originalmente creó una label ligera para 1.0.2, pero la eliminamos y la labelmos nuevamente como una versión anotada con el mismo número. Cometieron el cambio mediante git push al repository remoto. Saqué los últimos cambios en mis dos instancias git locales.

A less que use la bandera --tags , git describe solo se refiere a las tags anotadas (en lugar de las ligeras ). Aquí, la salida de git cat-file indica que todavía tienes la antigua label liviana release-1.0.2 en tu repo de sandbox. El inconveniente es que, de forma pnetworkingeterminada, git pull no obtendrá la nueva label anotada con el mismo nombre y sobrescribirá la anterior y liviana con ella.

Para resolver el problema, primero borre la label liviana localmente ejecutando

 git tag -d release-1.0.2 

en su repository de sandbox, y luego, ejecutar

 git fetch 

(o git pull , si sabes lo que estás haciendo). La nueva label anotada release-1.0.2 tomará el lugar de la antigua ligera. Puede asegurarse de eso ejecutando git describe o

 git cat-file -t release-1.0.2 

que ahora debería mostrar la tag (no commit ).