tag - tipos de etiquetas en git
¿Qué nombres son etiquetas git válidas? (1)
Recibo un mensaje de error al crear una etiqueta que contiene [ carácter:
fatal: ''['' no es un nombre de etiqueta válido.
Pregunta: ¿hay reglas para las etiquetas en el git?
Puede comprobar si el nombre es válido con
git check-ref-format
Esta page contiene las restricciones sobre un nombre válido. Citado de la página (posiblemente desactualizado en el futuro):
Pueden incluir barra diagonal
/para agrupación jerárquica (directorio), pero ningún componente separado por barra puede comenzar con un punto.o terminar con la secuencia.lock.Deben contener al menos una
/. Esto obliga a la presencia de una categoría comoheads/,tags/etc. pero los nombres reales no están restringidos. Si se usa la opción--allow-onelevel, esta regla no se aplica.No pueden tener dos puntos consecutivos
..cualquier lugar.No pueden tener caracteres de control ASCII (es decir, bytes cuyos valores sean inferiores a / 040 o / 177
DEL), espacio, tilde~, caret^o dos puntos:cualquier lugar.¿No pueden tener un signo de interrogación
?, asterisco*, o corchete abierto[cualquier lugar. Consulte la opción--refspec-patterncontinuación para ver una excepción a esta regla.No pueden comenzar ni terminar con una barra diagonal o contener varias barras diagonales consecutivas (consulte la opción
--normalizecontinuación para obtener una excepción a esta regla)No pueden terminar con un punto
..No pueden contener una secuencia
@{.No pueden ser el único carácter
@.No pueden contener un
/.
Como puede ver, en su caso violó la regla (5).
Puede utilizar el indicador --normalize para normalizar las etiquetas con respecto a las barras diagonales (eliminando las barras diagonales iniciales y las consecutivas):
git check-ref-format --normalize "tags/weird//tag"
Las tags/ especies de la parte que está validando una tag .
Después de una discusión con @NikosAlexandris, puede escribir el siguiente forro para verificar la etiqueta <some-tag> con comentarios textuales:
git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag"