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 分支名称的最大长度的主要内容,如果未能解决你的问题,请参考以下文章