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-pattern
continuació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
--normalize
continuació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"