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

Trying to set file name length limit with git - Permission denied

我正在尝试克隆一个包含长路径名文件的 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 文件时,我找不到一个。有谁知道发生了什么事?

你想要git config --global.

This seems strange, as the command is trying to change a file in Program Files, not in C:\Users\username where it should be.

这是预期的行为。因为你 运行 git config --system 它会寻找一个系统范围的配置文件。来自 git-config docs...

--system

For writing options: write to system-wide $(prefix)/etc/gitconfig rather than the repository .git/config.

您可能想要的是 git config --global 写入您的用户目录中的全局 git 配置文件。这与 git config --local 形成对比,后者用于写入 .git/config.

中的当前存储库的配置文件

--global

For writing options: write to global ~/.gitconfig file rather than the repository .git/config, write to $XDG_CONFIG_HOME/git/config file if this file exists and the ~/.gitconfig file doesn't.

我预计 msysgit 没有改变 git config --system 的行为,所以它天真地将 Windows 风格前缀 C:\Program Files\Git\mingw64 与 Unix 风格 [=19] 混合在一起=] 并得到一个带有混合定界符的无意义路径。

考虑letting them know about this behavior并建议给它一个更好的错误信息。

  1. 打开命令shell

as administrator

  1. 进入程序文件git
  2. 运行 git-bash 并更改它

git config --system core.longpaths true

ps 查看我关于克隆的 gitst ;) https://gist.github.com/obar1/45175bf22e5c56967b448a666631b21c

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