我正在尝试克隆包含具有长路径名的文件的 GitHub 存储库,并且我正在尝试使用以下命令绕过 Git 的文件长度限制
git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误消息:
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
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为该命令试图更改 Program Files 中的文件,而不是 C:\Users\username 中的文件。此外,当我检查 C:\Users\username 以查找 .gitconfig 文件时,我找不到一个。有谁知道发生了什么?
你要git config --global。
这看起来很奇怪,因为该命令试图更改 Program Files 中的文件,而不是 C:\Users\username 中的文件。
这是预期的行为。由于您运行git config --system,它将查找系统范围的配置文件。从git-config文档...
- 系统
对于写入选项:写入系统范围的 $(prefix)/etc/gitconfig 而不是存储库 .git/config。
您可能想要的是git config --global写入用户目录中的全局 git 配置文件。这与git config --local写入当前存储库的配置文件.git/config.
- 全球的
对于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config,如果此文件存在且 ~/.gitconfig 文件不存在,则写入 $XDG_CONFIG_HOME/git/config 文件。
我希望msysgit没有改变 的行为git config --system,所以它天真地将 Windows 风格的前缀C:\Program Files\Git\mingw64与 Unix 风格混合在一起,/etc/gitconfig并获得了带有混合分隔符的无意义路径。
考虑让他们知道这种行为,并建议为其提供更好的错误消息。
作为管理员
git config --system core.longpaths true
ps 检查我关于克隆的 gitst ;) https://gist.github.com/obar1/45175bf22e5c56967b448a666631b21c