Para los lanzamientos suelo etiquetar con algo como v1.1.0. Durante mi script de compilación, estoy creando un archivo fwVersion.c que contiene la información de git actual. Actualmente, tengo información de confirmación y rama en el archivo, pero me gustaría agregar la etiqueta.
es posible?
git describe --tags <commit-id>
para etiquetas nogit describe --all --exact-match `git rev-parse HEAD`
git describe --tags --abbrev=0 REV
será útil cuando no desee la basura en la etiqueta.git describe --all
(para el compromiso actualmente verificado) ogit describe --all <commit>
siempre he hecho casi todo lo que siempre quise.Si lo que quieres es la primera etiqueta que contiene la confirmación, entonces:
da la mejor respuesta en mi opinión. Si tiene etiquetas frecuentes, entonces el uso de "git tag --contains" en una confirmación anterior en un repositorio grande puede tardar un poco en ejecutarse y le proporciona todas las etiquetas que contienen esa confirmación.
Esta forma de git describe se ejecuta muy rápidamente y le da un valor de salida único que es la primera etiqueta que contiene la confirmación y qué tan atrás está su confirmación.
fuente
¿Qué tal esto?
git tag --points-at <commit-id>
Te da todas las etiquetas que tiene la confirmación dada (mientras que
git describe
solo te da una), y no incluye etiquetas en las confirmaciones descendientes (comogit tag --contains
hace).fuente
Puede encontrar esta información en el manual
fuente
Encontré la combinación de las dos respuestas principales para darme lo que quería, así:
Esto le da la etiqueta que es SOLO para esa confirmación y para aquellas sin anotación. Útil cuando desea encontrar etiquetas y no preocuparse por eliminar el formato (para Jenkins, por ejemplo).
p.ej.
$ git describe --tags --exact-match head~2
Te dio:
fuente
Consolidando algunas de las respuestas:
git tag --contains [<ref>]
y
git tag --points-at [<ref>]
o solo
git tag
se comportan de la misma manera, imprimiendo todas (y todas) las etiquetas para la referencia especificada o la confirmación actual si no se especifica.
git describe --tags [<ref>]
donde por
<ref>
defecto es la confirmación actual, sale con 128 si no hay etiquetas asociadas con la confirmación e imprime una etiqueta asociada con la confirmación (no parece haber un patrón).git describe [<ref>]
se comporta de la misma forma que con--tags
excepto que solo imprime etiquetas anotadas.El suministro de la opción
--contains
quedescribe
va a imprimir la etiqueta que se asocia con un antepasado de la confirmación especificada. Por ejemplofuente