什么名称是有效的git标签?

时间:2014-10-15 12:08:42

标签: git git-tag

我在创建包含[字符的标记时收到错误消息:

  

致命:'['不是有效的标签名称。

问题:git中是否有任何标签规则?

1 个答案:

答案 0 :(得分:81)

您可以使用

检查名称是否有效
git check-ref-format

page包含有效名称的约束。从页面引用(可能在将来过时):

  
      
  1. 它们可以包括用于分层(目录)分组的斜杠/,但没有斜杠分隔的组件可以以点.开头或以序列.lock结束。 / p>

  2.   
  3. 它们必须包含至少一个/。这会强制存在类似heads/tags/等类别,但实际名称不受限制。如果使用--allow-onelevel选项,则免除此规则。

  4.   
  5. 他们不能在任何地方连续两个点..

  6.   
  7. 它们不能包含ASCII控制字符(即值小于\ 040或\ 177 DEL的字节),空格,波浪号~,插入符^或在任何地方冒号:

  8.   
  9. 他们不能在任何地方添加问号?,星号*或开括号[。有关此规则的例外情况,请参阅下面的--refspec-pattern选项。

  10.   
  11. 它们不能以斜杠/开头或结尾,也不能包含多个连续斜杠(有关此规则的例外情况,请参阅下面的--normalize选项)

  12.   
  13. 它们不能以点.结尾。

  14.   
  15. 它们不能包含序列@{

  16.   
  17. 它们不能是单个字符@

  18.   
  19. 它们不能包含\

  20.   

如您所见,在您的情况下,您违反了规则(5)。

您可以使用--normalize标志来标注与斜杠相关的标记(删除前导斜杠和连续斜杠):

git check-ref-format --normalize "tags/weird//tag"

您要验证tags/的{​​{1}}部分物种。

在与@NikosAlexandris进行一些讨论后,您可以编写以下一个班轮来检查标签tag并提供文字反馈:

<some-tag>