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

Ale*_*lex 5 git msysgit

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

Sch*_*ern 5

你要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并获得了带有混合分隔符的无意义路径。

考虑让他们知道这种行为,并建议为其提供更好的错误消息。


rio*_*rio 5

  1. 打开cmd外壳

作为管理员

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

git config --system core.longpaths true

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