Git устанавливает следующие правила именования ссылок:
Они могут включать косую черту /для иерархической (каталоговой) группировки, но ни один разделенный слешами компонент не может начинаться с точки .или заканчиваться последовательностью .lock.
Они должны содержать хотя бы один / . Это обеспечивает наличие такой категории, как heads/и tags/т. Д., Но фактические имена не ограничены. Если --allow-onelevelопция используется, это правило отменяется.
У них не может быть двух последовательных точек ...
Они не могут иметь управляющие символы ASCII (т. Е. Байты, значения которых меньше \040или \177DEL), пробел, тильда~ , каретку ^или двоеточие :.
Они не могут иметь знак вопроса ?, звездочку* или открытую скобку [. Смотрите --refspec-patternопцию ниже для исключения из этого правила.
Они не могут начинаться или заканчиваться косой чертой / или содержать несколько последовательных косых черт ( --normalizeисключение из этого правила см. Ниже)
Они не могут заканчиваться точкой ..
Они не могут содержать последовательность @{ .
Они не могут быть одним персонажем @ .
Они не могут содержать \.
Кроме того, дополнительное правило для имени филиала:
Стоит отметить, что «>» разрешено, но для переключения на эту ветку в bash требуется экранирование с предшествующим «\»
igniteflow
3
Я запутался в правиле № 2 на странице руководства, на которую вы ссылались. Там написано «2. Они должны содержать хотя бы один /». Пожалуйста, объясни? Ни одна из моих веток не имеет /в названии.
Чарви
7
@chharvey: «ветка» без /уже heads/предваряется к нему «автоматически». На самом деле: без /, пока не ясно, ветка ли это, или тег, или что-то еще ...
Роберт Симер
1
@DMTintner: Запятые разрешены.
Роберт Симер
3
здесь есть регулярное выражение для этого /^[\./]|\.\.|@]|[\/\.]$|^@$|[~^:\x00-\x20\x7F\s?* [\\] / g это позволит найти недопустимые символы, чтобы вы могли заменить их на '-' или любой другой символ, который вы хотите
Ответы:
Правила именования для refname:
Кроме того, дополнительное правило для имени филиала:
Благодаря Jakub Narębski , на странице man для
git check-ref-format
более подробной информации.источник
/
». Пожалуйста, объясни? Ни одна из моих веток не имеет/
в названии./
ужеheads/
предваряется к нему «автоматически». На самом деле: без/
, пока не ясно, ветка ли это, или тег, или что-то еще ...