规则相当复杂, 但是当你考虑到分支最终成为文件系统上的文件时,它们就有意义了。Git对引用命名有以下规则: 它们可以包含斜杠/以进行分层(目录)分组,但不能以点.开头或以.lock结尾。 它们必须至少包含一个/。这强制存在类别,如heads/,tags/等,但实际名称不受限制。如果使用--allow-onelevel选项,则放宽此规则。 它们不能在任何地方具有两个连续的点.. 它们不能在任何地方具有ASCII控制字符(即值低于\040或\177 DEL的字节),空格,波浪线~,插入符^或冒号:。 它们不能在任何地方包含问号?、星号*或左括号[。有关此规则的例外,请参见下面的--refspec-pattern选项。 它们不能以斜杠/开头或结尾,也不能包含多个连续的斜杠(有关此规则的例外,请参见下面的--normalize选项) 它们不能以点..结尾。 它们不能包含序列@{。 它们不能是单个字符@。 它们不能包含\。 请注意,这是用于命名“引用(reference)”而非分支的。分支是一个看起来像refs/heads/<branchname>的引用(reference)。