为什么在结帐 git 远程分支窗口时出现“无法创建目录”?

MrF*_*ack 4 windows git

我在 Windows 10 64Bit 上使用 git 版本 2.10.2.windows.1。

在 MACOS 上,我们将两个分支合并为一个现有分支。合并后,分支包含一个末尾空格文件夹(“ Jadise / ”)。我基于之前在 Bitbucket 上的合并创建了一个新分支。现在,当我尝试在 Windows 下结帐我的新分支时,我收到此错误:

fatal: cannot create directory at 'wp-content/plugins/orbitvu-sh/_orbitvu_presentations/Jadise /_orbitvu_resized_images'

这是我尝试结帐到新远程分支的方式

git fetch git checkout new-branch

这个错误似乎不是指 Windows 中的最大路径长度。当我将存储库也放入卷的根目录时,错误是在同一点抛出的,就像在我发现这个问题的“原始项目文件夹”中一样。我也不认为此错误与访问问题有关,因为所有其他目录都已创建/更新而没有任何问题。

您可能会注意到,这是一个 wordpress 插件,由第三方维护。这就是为什么我不能简单地更改目录名称的原因,因为它可能会停止工作。同时,我需要它的内容才能进行有效的构建。

我克隆了该项目并切换到 debian 虚拟机中的分支,并且它没有任何问题地工作。似乎 debian(或非 git Windows / 不确定是 Windows 问题还是 git 问题)能够以某种方式处理此目录名称。当我想cd进入它时,当我使用选项卡自动完成时,它会显示“Jasmine\ /”。

这是 Windows 问题还是 git 问题,有没有办法在不重命名 3rd 方插件的文件夹的情况下为 Windows 10 64bit 解决它?

max*_*630 5

目前,适用于 windows 的 git不支持文件名中的尾随空格,这是有原因的:Win32 不处理此类路径,尽管您可以使用"\\?\..."UNC 路径技巧突破到 NTFS 。如果您碰巧有这样的路径,并且没有错误,那么该项目可能不打算在 Windows 上使用。

据了解,您有以下选择:

  • 要求项目作者重命名有问题的文件/目录或自己做
  • 尝试使用来自 cygwin/msys2 构建的 git。msys2 包装器处理一些 Windows 路径问题,将它们转换为合法的,但我不知道它是否处理这个问题。
  • 修复 git for windows - 考虑使用 UNC 路径。维护者说他会考虑采取这样的补丁。
  • 如果您真的不需要处理文件或目录,则可以使用sparse checkout将其从 checkout 中排除。