Git impone las siguientes reglas sobre cómo se nombran las referencias:
Pueden incluir barras diagonales /para la agrupación jerárquica (directorio), pero ningún componente separado por barras puede comenzar con un punto .o terminar con la secuencia .lock.
Deben contener al menos uno /. Esto exige la presencia de una categoría como heads/, tags/etc. , pero los nombres reales no están restringidos. Si --allow-onelevelse utiliza la opción, esta regla no se aplica.
No pueden tener dos puntos consecutivos en ..ninguna parte.
No pueden tener caracteres de control ASCII (es decir, bytes cuyos valores son menores que \040, o \177DEL), espacio, tilde ~, cursor ^o dos puntos en :cualquier lugar.
No pueden tener signos de interrogación ?, asterisco *o corchetes abiertos en [ninguna parte. Consulte la --refspec-patternsiguiente opción para ver una excepción a esta regla.
No pueden comenzar o terminar con una barra oblicua /o contener múltiples barras consecutivas (consulte la --normalizeopción a continuación para ver una excepción a esta regla)
No pueden terminar con un punto ..
No pueden contener una secuencia @{.
No pueden ser el único personaje @.
No pueden contener a \.
Además de eso, regla adicional para el nombre de la sucursal:
Vale la pena mencionar que '>' está permitido, pero para cambiar a esa rama en bash se requiere escapar con un '\' anterior
igniteflow
3
Estoy confundido acerca de la regla # 2 en la página del manual que vinculaste. Dice "2. Deben contener al menos uno /". ¿Por favor explique? Ninguna de mis ramas tiene un /nombre.
chharvey
77
@chharvey: una "rama" sin a se /ha heads/antepuesto a ella "automáticamente". En realidad: sin un /, todavía no está claro si es una rama o una etiqueta o algo más ...
Robert Siemer
1
@DMTintner: se permiten comas.
Robert Siemer
3
Aquí hay una expresión regular para este /^[\./font>|\.\.|@{|[\/\.font>$|^@$|[~^:\x00-\x20\x7F\s?* [\\] / g esto encontrará los caracteres no válidos para que pueda reemplazarlos con un '-' o el carácter que desee
Respuestas:
Reglas de nomenclatura para refname:
Además de eso, regla adicional para el nombre de la sucursal:
Gracias a Jakub Narębski , la página del manual para la
git check-ref-format
tiene más detalles.fuente
/
". ¿Por favor explique? Ninguna de mis ramas tiene un/
nombre./
haheads/
antepuesto a ella "automáticamente". En realidad: sin un/
, todavía no está claro si es una rama o una etiqueta o algo más ...