tipos tag remove qué practices existen etiquetas crear best git git-tag git-describe

tag - "Git describe" ignora una etiqueta



qué tipos de etiquetas existen en git (3)

Cuando esto nos sucedió, se trataba de dos etiquetas aplicadas para el mismo compromiso. Puede encontrar si este es el caso ejecutando

# git log --oneline --decorate=short deba4b4 (tag: v1.1.0.20.0, tag: v1.1.0.19.0) 001 New buildnumber

Aquí hay dos etiquetas, una para la versión 19 y otra para 20. 20 fue etiquetada después de 19, pero para la misma confirmación. En este caso describe la devolución

# git describe --tags v1.1.0.19.0

No sé por qué lo hizo, pero así es como parece funcionar con etiquetas duplicadas.

Otro caso donde esto podría suceder es si tiene una etiqueta que está más "cerca" de usted en una sucursal. Ese caso ha sido explicado en esta publicación de blog .

En las siguientes líneas:

$ git tag -n1 v1.8 Tagged the day before yesterday v1.9 Tagged yesterday v2.0 Tagged today $ git describe v1.9-500-ga6a8c67 $

¿Alguien puede explicar por qué la etiqueta v2.0 no es utilizada por "git describe" y cómo solucionarlo? La etiqueta v2.0 ya está presionada, así que supongo que no puedo simplemente eliminarla y volver a agregarla.


El problema es que la git tag muestra todas las etiquetas en todas las ramas, mientras que git describe solo usa etiquetas en las confirmaciones que están disponibles en la rama actual.

Aquí hay un ejemplo (la razón por la que vine aquí en realidad):

$ git tag | tail -n3 v0.4.0 v0.4.1 v0.4.2

Muestra que la última etiqueta disponible es v0.4.2 , pero esta es mi salida de git describe :

$ git describe --tags v0.4.0-2-acd334c

Estoy en la rama de desarrollo. Cuando exploro el registro, veo que las etiquetas más recientes no están disponibles en la rama actual:

$ git log --oneline --decorate=short | grep ''/(tag/:'' | head -n3 acd334c (tag: v0.4.0) Merge pull request #1061 988fe5e (tag: v0.3.6) Merge pull request #859 5f97274 (tag: v0.3.5) Merge pull request #646

Entonces, en mi caso, los desarrolladores decidieron crear una nueva rama de publicación exclusivamente para etiquetar lanzamientos, lo que hace que la rama de desarrollo ya no esté actualizada con las etiquetas.

Espero que ayude y gracias @eis por la idea de verificar los registros.


git describe usa solo etiquetas anotadas por defecto. especifica la opción --tags para que también use etiquetas livianas

asegúrate de haber comprobado la confirmación correcta ( git rev-parse HEAD ). Las etiquetas anotadas se crean con la git tag -a . si haces git show <tagname> y solo ves el compromiso, es una etiqueta ligera, si ves un mensaje de etiqueta adicional es una etiqueta anotada.