尝试设置文件名长度的限制与GIT - 权限被拒绝

问题描述:

我试图克隆含有长路径名文件GitHub的仓库,我试图使用命令尝试设置文件名长度的限制与GIT - 权限被拒绝

git config --system core.longpaths true 
绕过Git的文件长度的限制

不过,我收到错误消息:

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 

这似乎很奇怪,但该命令试图改变中的程序文​​件文件,而不是在C:\ Users \用户名,它应该是。此外,当我检查.gitconfig文件的C:\ Users \用户名时,我无法找到一个。有谁知道发生了什么事?

+0

你期待'core.longpaths'做什么?我看到下面的命令在Git仓库中运行,根本没有输出:'git grep -i longpath' – torek

+0

请参阅:http://*.com/questions/22575662/filename-too-long -in-git-for-windows – Alex

+0

啊,所以这不是一个Git的东西,而是针对msysgit。我添加了msysgit标签;也许有人会知道。 – torek

你想要git config --global

这似乎很奇怪,但该命令试图改变中的程序文​​件文件,而不是在C:\ Users \用户名,它应该是。

这是预期的行为。由于您运行的是git config --system,因此它将查找系统范围的配置文件。从git-config docs ...

--system

对于写作的选项:写全系统$(前缀)的/ etc/gitconfig而不是库的.git/config中。

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

--global

对于写作的选项:写入全球〜/的.gitconfig文件,而不是库 的.git/config中,写$ XDG_CONFIG_HOME/git的/ config文件,如果该文件存在,并且 〜/ .gitconfig文件没有。

我希望msysgit没有改变git config --system的行为,所以它天真地使用Unix风格/etc/gitconfig一起捣碎一个Windows风格的前缀C:\Program Files\Git\mingw64并获得混合定界符废话路径。

考虑letting them know about this behavior并建议给出更好的错误消息。