是否有git最大标记名长度?
我很好奇git标记名的长度是否有限制。如果不是在正式的git文档中,那么一些更流行的平台,如github、bitbucket、gitlab等呢 我看到的文档没有在标记名上列出长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到一个“限制”时,最终有些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称 我问这个问题的主要原因是,我在过去8年多的时间里一直在使用的SVN回购正试图迁移到git(bitbucket回购),而我得到的反馈是,“长”标记名造成了一大堆麻烦,阻碍了迁移。我能在repo中找到的最长标记名长度小于60个字符,标记数小于100个是否有git最大标记名长度?,git,tags,tagname,Git,Tags,Tagname,我很好奇git标记名的长度是否有限制。如果不是在正式的git文档中,那么一些更流行的平台,如github、bitbucket、gitlab等呢 我看到的文档没有在标记名上列出长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到一个“限制”时,最终有些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称 我问这个问题的主要原因是,我在过去8年多的时间里一直在使用的SVN回购正试图迁移到git(bitbucket回购),而我得到的反馈是,“长”标记名造成了一大堆麻烦,阻碍了迁移。我
标签名长度有限制吗?有几个限制,但各不相同:
- 由于单个名称组件有时存储在文件系统名称中,因此形式为
的标记名对每个部分都有限制:comp/on/ent
、comp
和on
。Linux系统上的实际限制取决于底层文件系统,通常为255个字符。其他文件系统可能具有较短的限制(有些文件系统可能允许较长的名称,但255通常就足够了)ent
- 由于整个名称有时存储为文件系统名称,因此全名,
可能有系统强制的限制。这可能是1024个字符(旧Unix系统)、4096个字符(某些当前Unix/Linux系统)或Windows系统上通常更小的其他值。另见refs/tags/comp/on/ent
限制可能是相对的(PATH\u MAX
其中.git/refs/tags/..
比最大值多减去五个字节)或绝对的(.git/
其中/PATH/to/repo/.git/refs/tags/..
比限制多减去五个字节)/PATH/to/repo/.git/
PATH\u MAX
的各种缓冲区,但这些缓冲区都应该在现代Git中清理,因此您通常只会遇到系统范围的限制,例如Windows 260字节PATH\u MAX
但是请注意,标签是呈现给人类的。在这里,人类往往受到更多的限制。我建议根据标签的系统性,将自己的标签长度控制在20到100个字符左右。有几种,但它们各不相同:
- 由于单个名称组件有时存储在文件系统名称中,因此形式为
的标记名对每个部分都有限制:comp/on/ent
、comp
和on
。Linux系统上的实际限制取决于底层文件系统,通常为255个字符。其他文件系统可能具有较短的限制(有些文件系统可能允许较长的名称,但255通常就足够了)ent
- 由于整个名称有时存储为文件系统名称,因此全名,
可能有系统强制的限制。这可能是1024个字符(旧Unix系统)、4096个字符(某些当前Unix/Linux系统)或Windows系统上通常更小的其他值。另见refs/tags/comp/on/ent
限制可能是相对的(PATH\u MAX
其中.git/refs/tags/..
比最大值多减去五个字节)或绝对的(.git/
其中/PATH/to/repo/.git/refs/tags/..
比限制多减去五个字节)/PATH/to/repo/.git/
PATH\u MAX
的各种缓冲区,但这些缓冲区都应该在现代Git中清理,因此您通常只会遇到系统范围的限制,例如Windows 260字节PATH\u MAX
但是请注意,标签是呈现给人类的。在这里,人类往往受到更多的限制。我建议根据标记的系统性,将自己的字符数限制在20到100个左右。这在Windows上很可能是个问题。这些长度在现代Unix系统上不应该是个问题,在Windows上很可能是个问题。这些长度在现代Unix系统上应该不是问题。非常感谢您提供的信息和背景细节。这确实有助于正确看待这一切。这实际上非常有用,因为今天早上我决定自己迁移回购协议,因为他们的尝试放弃了第一个2000次提交,这是回购协议中最关键和最重要的部分。所以至少现在我可以排除60个字符长的标签是原因非常感谢您提供的信息和背景细节。这确实有助于正确看待这一切。这实际上非常有用,因为今天早上我决定自己迁移回购协议,因为他们的尝试放弃了第一个2000次提交,这是回购协议中最关键和最重要的部分。所以至少现在我可以排除60个字符长的标签是原因