git 分支名称的最大长度

Posted

技术标签:

【中文标题】git 分支名称的最大长度【英文标题】:Max length of git branch name 【发布时间】:2014-07-23 17:47:29 【问题描述】:

我想了解 git 分支名称的最大允许大小。

我正在尝试创建一些长名称(作为实验),因此 370 个字符的名称是有效的,但 380 个字符给了我fatal: Failed to lock ref for update: File name too long

所以问题是:git 分支名称中可以包含的最大字符数是多少?它取决于系统吗?是否可以在远程存储库(即 Github)上拒绝的存储库中创建长分支名称?

【问题讨论】:

这方面也有一些很奇怪的行为。如果我尝试 400 chrs,它会失败。如果我然后尝试 300 它通过。很公平。但是在 300 个工作之后,我就能够创建具有 400,500,600 等 chrs 的分支。尝试在命令行中测试和确定限制揭示了这种行为。 【参考方案1】:

“文件名太长”确实是来自您的系统的错误。这不是 Git 的限制。我认为没有一种方法可以测试其他系统(例如 GitHub)的最大分支名称长度,而无需进行试验 - 尽管我不明白您为什么想知道...

.

来源:提到的错误是在branch.c 的第 291 行抛出的。 “文件名太长”是 ENAMETOOLONG 错误的标准描述。

【讨论】:

我认为 some limit 是有用的,当GitHub Flow document encourages to use descriptive names. GItHub 将分支名称限制为 255 个字符。 @iconoclast :因为它没有记录。 @user2284570 您在哪里看到 GitHub 文档中关于分支名称长度的 255 个字符的限制? @mljrg Git 分支存储为文件名。由于 Github 使用 ext4 来存储用户的存储库,因此分支名称限制是主机文件系统之一,在 ext4 的情况下为 255 个字符。虽然我通过leaks获得了这些知识。【参考方案2】:

打开 Github Powershell,执行以下命令:

git config --system core.longpaths true

【讨论】:

^--- 这在this question 中进行了讨论。显然这是一个 Windows 文件名(包括路径)长度限制,而 longpaths 是一种避免它的方法(前提是您拥有正确版本的 Git 客户端)。这个问题来自 2014 年,所以现在它可能不是问题。 (顺便说一句,有人提到 git 的文件名限制为 4096 个字符。)无论如何,OP 询问的是 branch 名称长度,而不是文件名。

以上是关于git 分支名称的最大长度的主要内容,如果未能解决你的问题,请参考以下文章

电子邮件地址中显示名称的最大长度是多少

最大方法名称长度

Java中变量或方法的最大名称长度

iPad 应用程序名称的最大长度是多少?

在 Common Lisp 中,符号名称是不是有定义的最大长度?

标头的最大长度