如何修复git clone期间的“文件名过长错误”

时间:2018-10-08 09:26:10

标签: java git github gitlab

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

但是,在进行克隆时出现以下错误:

  

错误:无法创建文件文件夹名/节点模块/ ......:文件名   太长了。

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

但是我得到了:

  

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

请提出如何解决这两个错误的建议。

6 个答案:

答案 0 :(得分:8)

  1. 以管理员身份启动Git Bash
  2. 运行命令vtkSmartPointer<vtkPoints> pointsVTK = vtkSmartPointer<vtkPoints>::New(); pointsVTK->SetNumberOfPoints(hashMapPoints.size()); //// //insert the points in pointsVTK and vertex, and set labels and sizes //// vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New(); polyData->SetPoints(pointsVTK); polyData->SetVerts(vertsVTK); point_poly->GetPointData()->AddArray(labels); point_poly->GetPointData()->AddArray(sizes); vtkSmartPointer<vtkSelectEnclosedPoints> selectEnclosedPoints = vtkSmartPointer<vtkSelectEnclosedPoints>::New(); double test[3] = {1, 1, 0}; vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); points->InsertNextPoint(test); vtkSmartPointer<vtkPolyData> pointsPolydata = vtkSmartPointer<vtkPolyData>::New(); pointsPolydata->SetPoints(points); selectEnclosedPoints->SetInputData(pointsPolydata); selectEnclosedPoints->SetSurfaceData(polyData); selectEnclosedPoints->Update(); std::cout << "Point: " << selectEnclosedPoints->IsInside(0) << std::endl;

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

git config --system core.longpaths true

答案 1 :(得分:2)

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

答案 2 :(得分:0)

在Windows上,文件名的最大长度限制为260个字符。

有关如何删除它的信息,请参见https://superuser.com/questions/811146/windows-7-file-name-length-limited-to-129-characters

答案 3 :(得分:0)

我没有管理员权限。所以我必须转到 .git 文件夹(隐藏)中的配置文件,该文件夹位于您在本地计算机中启动克隆的同一文件夹中。 然后在 [core] 下添加“ longpaths = true ”。从 Git Bash 运行 git reset --hard origin/xxx。这对我有用。

答案 4 :(得分:0)

基本上,我们需要在核心部分下的本地 git 配置文件中将变量“longpaths”设置为 true。

您可以通过路径导航到它

<git-repo>\.git\config

或者,您可以使用以下命令使用 git bash 克隆您的代码

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

答案 5 :(得分:0)

如果命令 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

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

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
        hideDotFiles = dotGitOnly
        longpaths = true