He visto los comandos git describe
y git-name-rev
no he logrado que incluyan más de una etiqueta.
Ejemplo: tengo el sha1 48eb354 y sé que las etiquetas A y B apuntan a él. Entonces quiero un comando git git {something} 48eb354
que produzca una salida similar a "A, B". No estoy interesado en conocer referencias relativas a otras etiquetas o ramas, solo coincidencias exactas para las etiquetas.
-e 's/\^{}//'
-d
opción activadagit show-ref
. De los documentos, "-d, --dereference Desreferencia etiquetas en ID de objeto también. Se mostrarán con" ^ {} "adjunto."${ref}
etiquetas arbitrarias , incluidas las anotadas:hash=$(git rev-parse "${ref}^0"); git show-ref --tags -d | sed -n -e 's,^'"${hash}"' refs/tags/\(.*\)^{}$',\1,p'
git tag --points-at HEAD
Muestra todas las etiquetas en HEAD, también puede sustituir HEAD con cualquier sha1 id.
fuente
Puedes usar:
que muestra todas las etiquetas en cierto compromiso. Se puede utilizar en lugar de:
que está disponible solo desde 1.7.10.
fuente
--contains
también parece mucho más lento que--points-at
(tiempo de ejecución de 7-8 s frente a <1 s)Lástima que no se pueda hacer más fácilmente. Otra bandera
git tag
para incluir ID de confirmación podría expresar esagit for-each-ref
invocación de forma natural.fuente
El siguiente comando hace el trabajo, pero analiza directamente el contenido del directorio .git y, por lo tanto, puede romperse si cambia el formato del repositorio git.
fuente
Para el compromiso actual puede usar
fuente