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

我在创build包含[ character:

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

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

您可以检查名称是否有效

 git check-ref-format 

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

  1. 它们可以包含斜线/用于分层(目录)分组,但不能以斜线开始. 或以序列.lock

  2. 它们必须包含至less一个/ 。 这强制存在heads/ tags/等类别,但实际名称不受限制。 如果使用--allow-onelevel选项,则该规则被放弃。

  3. 他们不能有两个连续的点..在任何地方。

  4. 它们不能具有ASCII控制字符(即,其值低于\ 040或\ 177 DEL字节),空格,波形符号,符号^或冒号:任何地方。

  5. 他们不能有问号? ,星号* ,或者任何地方的开放括号。 有关此规则的例外,请参阅下面的--refspec-pattern选项。

  6. 它们不能以斜杠开始或结束/或包含多个连续的斜杠(有关此规则的例外,请参阅下面的--normalize选项)

  7. 他们不能以一个圆点结束.

  8. 它们不能包含序列@{

  9. 他们不能是单个字符@

  10. 他们不能包含\

你可以看到,你的情况违反了规则(5)。

您可以使用--normalize标志来对斜杠进行标准化(除去前导斜杠和连续斜杠):

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

您正在validationtagtags/零件种类。

经过与@NikosAlexandris的讨论后,你可以编写下面的代码来检查带有文本反馈的标签<some-tag>

 git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag!"