Github分支名称的最大长度是多少?

11

我找不到任何关于Github(非Git)分支名称最大长度的文档资料,那么它是多少?

2个回答

14

答案: 62-250 字节

解释: 最准确的答案是250字节。为了得出这个结论,我尝试使用不同长度和字符组成的分支名来找到Github的限制。当使用仅由有效ASCII字符组成的字符串时,限制为250个字符,如果我们假设使用UTF-8编码,则总共为250字节。当使用所有32位/4字节Unicode字符(即我的测试中的所有字符)时,限制为62个字符,总共为238字节。虽然我没有明确测试过,但我认为可以安全地假设相同的规则适用于任何任意混合的字符-总字节数是约束,而不是字符数。


不确定为什么这个回答被接受了;很容易测试出GitHub拒绝250字节的分支名称。根据Rob的报告,244字节似乎是正确的限制。 - undefined

3
根据GitHub返回的错误信息,它是255字节:
Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: error: GH005: Sorry, refs longer than 255 bytes are not allowed.
remote: ref too long: "refs/heads/..."

最大长度适用于整个ref,因此包括“refs/heads/”。 您可以通过创建一个由244个ASCII字符组成的分支并将其推送到GitHub来验证此内容:
git checkout -b 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
git push --set-upstream origin 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123

如果您在分支名称后附加单个ASCII字符,则推送到GitHub将失败。
请注意,限制是以字节为单位的,而不是字符(Unicode字符可能占用多个字节)。

2
需要注意的是上述分支名称为244个字符,而不是最初提到的243个字符。答案的其余部分(目前)是正确的,即限制为255 - len("refs/heads/")。 - joneshf
仓库名称长度限制是多少? - greatvovan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接