分支名称中哪些字符是非法的?
refname的命名规则:
Git对引用的命名方式规定了以下规则:
- 它们可以包括用于分层(目录)分组的斜杠
/
,但是没有斜杠分隔的组件可以以点.
开头或以.lock
序列结束。- 它们必须包含至少一个
/
。这强制存在像heads/
,tags/
等类别,但实际名称不受限制。如果使用--allow-onelevel
选项,则放弃此规则。- 他们不能在任何地方连续两个点
..
。- 他们不能在任何地方拥有ASCII控制字符(即值低于
\040
或\177
DEL
的字节),空格,波浪~
,插入符号^
或冒号:
。- 他们不能在任何地方都有问号
?
,asterisk*
或开放式支架[
。有关此规则的例外情况,请参阅下面的--refspec-pattern
选项。- 它们不能以斜线
/
开头或结尾或包含多个连续斜杠(请参阅下面的--normalize
选项以获取此规则的例外)- 他们不能以点
..
结束- 它们不能包含序列
@{
。- 他们不能是单个字符
@
。- 他们不能包含
\
。
最重要的是,分支名称的附加规则:
- 他们不能以破折号
-
开头
感谢Jakub Narębski,man page的git check-ref-format
有更多细节。