是否有git最大标记名长度?

是否有git最大标记名长度?,git,tags,tagname,Git,Tags,Tagname,我很好奇git标记名的长度是否有限制。如果不是在正式的git文档中,那么一些更流行的平台,如github、bitbucket、gitlab等呢 我看到的文档没有在标记名上列出长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到一个“限制”时,最终有些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称 我问这个问题的主要原因是,我在过去8年多的时间里一直在使用的SVN回购正试图迁移到git(bitbucket回购),而我得到的反馈是,“长”标记名造成了一大堆麻烦,阻碍了迁移。我

我很好奇git标记名的长度是否有限制。如果不是在正式的git文档中,那么一些更流行的平台,如github、bitbucket、gitlab等呢

我看到的文档没有在标记名上列出长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到一个“限制”时,最终有些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称

我问这个问题的主要原因是,我在过去8年多的时间里一直在使用的SVN回购正试图迁移到git(bitbucket回购),而我得到的反馈是,“长”标记名造成了一大堆麻烦,阻碍了迁移。我能在repo中找到的最长标记名长度小于60个字符,标记数小于100个


标签名长度有限制吗?

有几个限制,但各不相同:

  • 由于单个名称组件有时存储在文件系统名称中,因此形式为
    comp/on/ent
    的标记名对每个部分都有限制:
    comp
    on
    ent
    。Linux系统上的实际限制取决于底层文件系统,通常为255个字符。其他文件系统可能具有较短的限制(有些文件系统可能允许较长的名称,但255通常就足够了)

  • 由于整个名称有时存储为文件系统名称,因此全名,
    refs/tags/comp/on/ent
    可能有系统强制的限制。这可能是1024个字符(旧Unix系统)、4096个字符(某些当前Unix/Linux系统)或Windows系统上通常更小的其他值。另见

  • PATH\u MAX
    限制可能是相对的(
    .git/refs/tags/..
    其中
    .git/
    比最大值多减去五个字节)或绝对的(
    /PATH/to/repo/.git/refs/tags/..
    其中
    /PATH/to/repo/.git/
    比限制多减去五个字节)

在Git内部,曾经有大小为1024或
PATH\u MAX
的各种缓冲区,但这些缓冲区都应该在现代Git中清理,因此您通常只会遇到系统范围的限制,例如Windows 260字节
PATH\u MAX


但是请注意,标签是呈现给人类的。在这里,人类往往受到更多的限制。我建议根据标签的系统性,将自己的标签长度控制在20到100个字符左右。

有几种,但它们各不相同:

  • 由于单个名称组件有时存储在文件系统名称中,因此形式为
    comp/on/ent
    的标记名对每个部分都有限制:
    comp
    on
    ent
    。Linux系统上的实际限制取决于底层文件系统,通常为255个字符。其他文件系统可能具有较短的限制(有些文件系统可能允许较长的名称,但255通常就足够了)

  • 由于整个名称有时存储为文件系统名称,因此全名,
    refs/tags/comp/on/ent
    可能有系统强制的限制。这可能是1024个字符(旧Unix系统)、4096个字符(某些当前Unix/Linux系统)或Windows系统上通常更小的其他值。另见

  • PATH\u MAX
    限制可能是相对的(
    .git/refs/tags/..
    其中
    .git/
    比最大值多减去五个字节)或绝对的(
    /PATH/to/repo/.git/refs/tags/..
    其中
    /PATH/to/repo/.git/
    比限制多减去五个字节)

在Git内部,曾经有大小为1024或
PATH\u MAX
的各种缓冲区,但这些缓冲区都应该在现代Git中清理,因此您通常只会遇到系统范围的限制,例如Windows 260字节
PATH\u MAX


但是请注意,标签是呈现给人类的。在这里,人类往往受到更多的限制。我建议根据标记的系统性,将自己的字符数限制在20到100个左右。

这在Windows上很可能是个问题。这些长度在现代Unix系统上不应该是个问题,在Windows上很可能是个问题。这些长度在现代Unix系统上应该不是问题。非常感谢您提供的信息和背景细节。这确实有助于正确看待这一切。这实际上非常有用,因为今天早上我决定自己迁移回购协议,因为他们的尝试放弃了第一个2000次提交,这是回购协议中最关键和最重要的部分。所以至少现在我可以排除60个字符长的标签是原因非常感谢您提供的信息和背景细节。这确实有助于正确看待这一切。这实际上非常有用,因为今天早上我决定自己迁移回购协议,因为他们的尝试放弃了第一个2000次提交,这是回购协议中最关键和最重要的部分。所以至少现在我可以排除60个字符长的标签是原因