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

时间:2016-11-27 12:02:57

标签: 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问题,有没有办法解决Windows 10 64bit而不重命名第三方插件的文件夹?

1 个答案:

答案 0 :(得分:3)

目前,git for windows does not support trailing spaces in filenames,并且有一个原因:Win32不处理这样的路径,尽管你可以使用"\\?\..." UNC路径技巧突破到NTFS。如果您碰巧有这样的路径,并且这不是一些错误,可能该项目不打算在Windows上使用。

据了解,您有以下选择:

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