我在 Windows 10 64 位上使用 git 版本 2.10.2.windows.1。
在 MACOS 上,我们将两个分支 merge 为一个现有分支。 merge 后,分支包含一个文件夹,其末尾有一个空白(“Jadise/”)。我基于之前在 Bitbucket 上的 merge 创建了一个新分支。 现在,当我尝试在 Windows 下 check out 我的新分支时,出现此错误:
严重:无法在“wp-content/plugins/orbitvu-sh/_orbitvu_presentations/Jadise/_orbitvu_resized_images”创建目录
这是我尝试 checkout 到新的远程分支的方式
git 获取
git checkout 新分支
这个错误似乎不是指 Windows 中的最大路径长度。当我将存储库也放入卷的根目录时,错误在同一点被抛出,就像在我发现这个问题的“原始项目文件夹”中一样。我也不认为这个错误与访问问题有关,因为所有其他目录都已创建/更新,没有任何问题。
您可能会注意到,这是 wordpress 的插件,由第三方维护。这就是为什么我不能简单地更改目录名称的原因,因为它可能会停止工作。同时,我需要它的内容才能进行构建。
我克隆了项目并切换到 debian 虚拟机中的分支,它运行没有任何问题。似乎 debian(或非 git Windows/不确定它是 windows 问题还是 git 问题)能够以某种方式处理此目录名称。当我想 cd
进入它时,当我使用 tab 键自动完成时,它会显示“Jasmine\/”。
这是 Windows 问题还是 git 问题,有没有办法在不重命名第 3 方插件的文件夹的情况下解决 Windows 10 64 位问题?
最佳答案
目前,Windows 版 git does not support trailing spaces in filenames ,这是有原因的:Win32 不处理此类路径,尽管您可以使用 "\\?\..."
UNC 路径技巧突破到 NTFS。如果您碰巧有这样的路径,并且不是错误,则可能该项目不适合在 Windows 上使用。
据了解,您有以下选择:
- 请项目作者重命名有问题的文件/目录或自己做
- 尝试使用来自 cygwin/msys2 构建的 git。 msys2 包装器处理一些 Windows 路径问题,将它们转换为合法路径,但我不知道它是否处理了这个问题。
- 修复 git for windows - 使用 UNC 路径。维护者说他会考虑打这样的补丁。
- 如果您真的不需要处理该文件或目录,您可以使用sparse checkout 将其从 check out 中排除。 .
关于windows - 为什么在 checkout git 远程分支窗口时得到 "cannot create directory"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40828718/