是否有 git 最大标签名称长度?
Is there a git max tag name length?
我很好奇 git 标签名称的长度是否有任何限制。如果不在官方 git 文档中,那么 github、bitbucket、gitlab 等一些更流行的平台呢?
我看过的文档没有列出标签名称的长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到“限制”时,最终某些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称。
https://git-scm.com/docs/git-tag
https://git-scm.com/docs/git-check-ref-format
我问这个问题的主要原因是我在过去 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 系统上通常要小得多。另见 Where is PATH_MAX defined in Linux?
PATH_MAX
限制可能是相对的(.git/refs/tags/...
,其中 .git/
比最大值多五个字节)或绝对的(/path/to/repo/.git/refs/tags/...
,其中 /path/to/repo/.git/
比限制多了五个字节)。
在Git内部,曾经有各种大小为1024或PATH_MAX
的缓冲区,但这些都应该在现代Git中清理干净,所以你通常应该仅 运行 进入系统范围限制,例如 Windows 260 字节 PATH_MAX
.
但是请注意,标签是呈现给人类的。人类在这里往往受到更多限制。我建议您将自己的字符数控制在 20 到 100 个左右,具体取决于您的标签的系统性。
我很好奇 git 标签名称的长度是否有任何限制。如果不在官方 git 文档中,那么 github、bitbucket、gitlab 等一些更流行的平台呢?
我看过的文档没有列出标签名称的长度限制。但是必须有某种限制,因为没有什么是无限的,当你达到“限制”时,最终某些东西会失败。这里有两个与标记相关的主要文档,特别是标记名称。
https://git-scm.com/docs/git-tag https://git-scm.com/docs/git-check-ref-format
我问这个问题的主要原因是我在过去 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 系统上通常要小得多。另见 Where is PATH_MAX defined in Linux?PATH_MAX
限制可能是相对的(.git/refs/tags/...
,其中.git/
比最大值多五个字节)或绝对的(/path/to/repo/.git/refs/tags/...
,其中/path/to/repo/.git/
比限制多了五个字节)。
在Git内部,曾经有各种大小为1024或PATH_MAX
的缓冲区,但这些都应该在现代Git中清理干净,所以你通常应该仅 运行 进入系统范围限制,例如 Windows 260 字节 PATH_MAX
.
但是请注意,标签是呈现给人类的。人类在这里往往受到更多限制。我建议您将自己的字符数控制在 20 到 100 个左右,具体取决于您的标签的系统性。