试图使用git设置文件名长度限制-权限被拒绝

7

我正在尝试克隆一个GitHub仓库,其中包含具有较长路径名称的文件,并且我正在尝试使用以下命令绕过Git的文件长度限制

git config --system core.longpaths true

然而,我遇到了以下错误信息:
error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied
error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Invalid argument

这看起来很奇怪,因为该命令试图更改Program Files中的文件,而不是应在C:\ Users \ username中。此外,当我检查C:\ Users \ username寻找.gitconfig文件时,我无法找到它。有人知道发生了什么吗?


你期望 core.longpaths 做什么?我发现在 Git 本身的 Git 存储库中运行以下命令根本没有输出:git grep -i longpath - torek
请参考此链接:https://dev59.com/9WEh5IYBdhLWcg3wTB32 - Alex
啊,这不是Git的问题,而是特定于msysgit。我添加了msysgit标签;也许那里的某个人会知道。 - torek
3个回答

6

5
您需要执行 git config --global 命令。

这似乎很奇怪,因为该命令试图更改 Program Files 中的文件,而不是应该在 C:\Users\username 中更改。

这是预期行为。由于您运行了 git config --system 命令,它将寻找系统范围内的配置文件。根据git-config文档...

--system

对于写入选项:写入系统范围内的 $(prefix)/etc/gitconfig 而不是存储库 .git/config。

您可能想要运行 git config --global 命令,以便将其写入您的用户目录中的全局 git 配置文件。这与 git config --local 不同,后者用于写入当前存储库的配置文件 .git/config

--global

对于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config,如果该文件存在并且没有 ~/.gitconfig 文件,则写入 $XDG_CONFIG_HOME/git/config 文件。

我预计 msysgit 没有更改 git config --system 的行为,因此它天真地将 Windows 风格的前缀 C:\Program Files\Git\mingw64 与 Unix 样式的 /etc/gitconfig 拼接在一起,并得到混合分隔符的无意义路径。
考虑向他们反馈此行为并建议提供更好的错误消息。

0

右键单击CMD并以管理员身份运行,然后“git config --system core.longpaths true”命令将正常工作。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

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