我在创建包含[字符的标记时收到错误消息:fatal:“[”不是有效的标记名称。问:git中的标签有什么规则吗?
[
wh6knrhe1#
您可以使用检查名称是否有效
git check-ref-format
此page包含对有效名称的约束。引用自页面(可能在将来过时):1.它们可以包含斜线/用于分层(目录)分组,但斜线分隔的组件不能以点.开始或以序列.lock结束。1.它们必须至少包含一个/。这强制了heads/、tags/等类别的存在。但实际名称不受限制。如果使用--allow-onelevel选项,则放弃此规则。1.它们不能在任何地方有两个连续的点..。1.它们不能有ASCII控制字符(即例如,值小于\040或\177 DEL的字节)、空格、波浪号~、插入符号^或冒号:。1.它们不能有问号?、星号*或左括号[。请参阅下面的--refspec-pattern选项以了解此规则的例外情况。1.它们不能以斜杠/开始或结束,也不能包含多个连续的斜杠(有关此规则的例外,请参阅下面的--normalize选项)1.它们不能以点.结尾。1.它们不能包含序列@{。1.它们不能是单个字符@。1.它们不能包含\。正如你所看到的,在你的情况下,你违反了规则(5)。您可以使用--normalize标志来规范化标签中的斜杠(删除前导斜杠以及连续斜杠):
/
.
.lock
heads/
tags/
--allow-onelevel
..
DEL
~
^
:
?
*
--refspec-pattern
--normalize
@{
@
\
git check-ref-format --normalize "tags/weird//tag"
要验证tag的tags/部件种类。在与@NikosAlexandris进行了一些讨论之后,您可以编写以下一行代码来检查标记<some-tag>并提供文本反馈:
tag
<some-tag>
git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag"
c3frrgcw2#
不允许的字符:'~','^',':',','?','[','*',最好禁用以下:'\r','\n',' '(空白)不允许的序列“。.”和“@{”该符号/序列具有重新解析的特殊含义。资料来源: www.example.com附加信息:https://git-scm.com/docs/git-check-ref-format
cgfeq70w3#
对我来说,它是看不见的新行字符在我的标签,这是给我的问题。
3条答案
按热度按时间wh6knrhe1#
您可以使用检查名称是否有效
此page包含对有效名称的约束。引用自页面(可能在将来过时):
1.它们可以包含斜线
/
用于分层(目录)分组,但斜线分隔的组件不能以点.
开始或以序列.lock
结束。1.它们必须至少包含一个
/
。这强制了heads/
、tags/
等类别的存在。但实际名称不受限制。如果使用--allow-onelevel
选项,则放弃此规则。1.它们不能在任何地方有两个连续的点
..
。1.它们不能有ASCII控制字符(即例如,值小于\040或\177
DEL
的字节)、空格、波浪号~
、插入符号^
或冒号:
。1.它们不能有问号
?
、星号*
或左括号[
。请参阅下面的--refspec-pattern
选项以了解此规则的例外情况。1.它们不能以斜杠
/
开始或结束,也不能包含多个连续的斜杠(有关此规则的例外,请参阅下面的--normalize
选项)1.它们不能以点
.
结尾。1.它们不能包含序列
@{
。1.它们不能是单个字符
@
。1.它们不能包含
\
。正如你所看到的,在你的情况下,你违反了规则(5)。
您可以使用
--normalize
标志来规范化标签中的斜杠(删除前导斜杠以及连续斜杠):要验证
tag
的tags/
部件种类。在与@NikosAlexandris进行了一些讨论之后,您可以编写以下一行代码来检查标记
<some-tag>
并提供文本反馈:c3frrgcw2#
不允许的字符:'~','^',':',','?','[','*',
最好禁用以下:'\r','\n',' '(空白)
不允许的序列“。.”和“@{”
该符号/序列具有重新解析的特殊含义。
资料来源: www.example.com
附加信息:https://git-scm.com/docs/git-check-ref-format
cgfeq70w3#
对我来说,它是看不见的新行字符在我的标签,这是给我的问题。