如何在git clone中修复"Filename too long error"

Pal*_*all 5 java git github gitlab

我正在尝试使用以下命令从我的bitbucket存储库的特定分支中获取一个git clone : git clone <url> --branch <branchname>.

但是,我在获取克隆时遇到以下错误:

错误:无法创建文件foldername/nodemodules/......:文件名太长.

我尝试通过在我的git cmd中运行以下命令来解决这个问题 git config --system core.longpaths true.

但我得到:

错误:无法锁定配置文件c://.gitconfig:权限被拒绝错误:无法锁定配置文件c://.gitconfig:无效的参数.

请建议如何解决这两个错误.

小智 32

而不是git config --system core.longpaths true 尝试:

git config --global core.longpaths true
Run Code Online (Sandbox Code Playgroud)

--system将为系统上的所有用户设置变量,但您正在寻找的是为当前登录的用户设置变量。


Sha*_*zyk 17

  1. 以管理员身份启动Git Bash
  2. 运行命令 git config --system core.longpaths true

另一种方式(仅适用于此克隆):

git clone -c core.longpaths=true <repo-url>

  • 嘿谢谢!!这对我有用。git clone -c core.longpaths=true &lt;repo-url&gt; (3认同)
  • 如果您使用的是 UI 工具并且上述方法没有帮助.. .. &gt;&gt; 解决方案 &gt;&gt; 如上所述将“longpaths=true”添加到核心部分&gt;&gt; C:\Users[---YOU-- ] \AppData\Local\Fork\gitInstance\2.20.1\mingw64\etc\gitconfig(对于 Windows 10 上的 Fork) (2认同)

Lak*_*i G 6

如果命令git config core.longpaths true不起作用,请尝试手动更改它。

转到.git项目的文件夹(确保您在文件资源管理器中启用了隐藏项目视图)并打开文件config。文件内容如下所示

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[remote "origin"]
    url = https://<domain>/scm/<project>/<repo>.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

在部分下手动添加longpaths = true属性[core]。保存它并尝试从新的 git bash 会话中提取代码。它会解决这个问题。

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
        hideDotFiles = dotGitOnly
        longpaths = true
Run Code Online (Sandbox Code Playgroud)


Duo*_*Anh 5

您可以尝试使用命令设置长路径: git config --system core.longpaths true

  • 必须以管理员权限执行 (3认同)
  • 如果您只需要对单个存储库进行更改,则可以在没有 --system 的情况下运行,并且不需要管理员权限:`git config core.longpaths true` (3认同)