什么名字是有效的git标签?
我在创build包含[
character:
致命的:'['不是有效的标签名称。
问题:git中是否有标签的规则?
您可以检查名称是否有效
git check-ref-format
此页面包含有效名称的约束。 从页面引用(可能过时未来):
它们可以包含斜线
/
用于分层(目录)分组,但不能以斜线开始.
或以序列.lock
。它们必须包含至less一个
/
。 这强制存在heads/
tags/
等类别,但实际名称不受限制。 如果使用--allow-onelevel
选项,则该规则被放弃。他们不能有两个连续的点
..
在任何地方。它们不能具有ASCII控制字符(即,其值低于\ 040或\ 177
DEL
字节),空格,波形符号,符号^
或冒号:
任何地方。他们不能有问号
?
,星号*
,或者任何地方的开放括号。 有关此规则的例外,请参阅下面的--refspec-pattern
选项。它们不能以斜杠开始或结束
/
或包含多个连续的斜杠(有关此规则的例外,请参阅下面的--normalize
选项)他们不能以一个圆点结束
.
。它们不能包含序列
@{
。他们不能是单个字符
@
。他们不能包含
\
。
你可以看到,你的情况违反了规则(5)。
您可以使用--normalize
标志来对斜杠进行标准化(除去前导斜杠和连续斜杠):
git check-ref-format --normalize "tags/weird//tag"
您正在validationtag
的tags/
零件种类。
经过与@NikosAlexandris的讨论后,你可以编写下面的代码来检查带有文本反馈的标签<some-tag>
:
git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag!"