为什么在checkout git远程分支窗口时得到“无法创build目录”?

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

在MACOS上,我们将两个分支合并成一个现有的分支。 合并之后,分支包含一个结尾处带有空格文件夹 (“ Jadise / ”)。 我创build了一个基于前者的合并在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中的最大path长度。 因为我把库也放到卷的根目录下,并且在我发现这个问题的“原始项目文件夹”中出现错误。 我也不认为这个错误与访问问题有关,因为所有其他的目录已经被创build/更新,没有任何问题。

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

我克隆了这个项目,并在一个debian虚拟机中切换到了这个分支,而且没有任何问题。 它似乎像debian(或非git的Windows /不知道这是一个Windows问题或git问题)能够以某种方式处理这个目录名称。 当我想要进入它时显示我“茉莉花\ /”当我使用标签自动完成。

这是一个Windows问题或混帐问题,有没有办法解决它的Windows 10 64位而无需重命名第三方插件的文件夹?

目前,git for windows 不支持文件名后面的空格,原因是:Win32不处理这样的路径,尽管你可以使用"\\?\..." UNC路径技巧突破到NTFS。 如果碰巧有这样的路径,而且没有什么错误,那么这个项目可能不适合在Windows上使用。

据了解,你有以下选择:

  • 请项目作者重新命名有问题的文件/目录或自己动手
  • 尝试从cygwin / msys2构建中使用git。 msys2包装处理一些Windows路径问题,将其转换成合法的,但我不知道它是否处理这个问题。
  • 修复Windows的git – 使用UNC路径。 维护者说他会考虑采取这样的补丁。
  • 如果您不需要处理文件或目录,则可以使用稀疏检出将其从结帐中排除。