windows - 为什么在 checkout git 远程分支窗口时得到 "cannot create directory"?

标签 windows git

我在 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/

相关文章:

git - 从多个 pull ,仅 push 一个

windows - 使用 NAudio 获取输入设备支持的格式

python - 如何使python可移植?

c# - 使用 C# 在远程 Windows 服务器上创建本地用户

git - 自动为所有提交添加 Github 问题编号

git - 从 GitHub 克隆 Git 后,我​​看不到我的分支

git - 如何获取完整的 Git 日志历史记录

git - 使用Git从 "Repo"仓库同步一个项目

.net - 如何避免不同用户的多个实例但允许单个用户 session 上的多个实例

Windows批处理脚本查找空闲文件名