2

我正在尝试将在 Linux 机器上进行的提交拉入 Windows 机器。我收到此错误消息:

error: git checkout-index: unable to create file my/folder/name/: (Invalid argument)

Linux机器上似乎有 2 个这样的“名称”文件夹,分别称为:'name''Name'. 即使将它们合并'name'并重新提交后,我仍然会收到相同的错误消息。

在 Windows 上我有 git 版本 1.7.3.1.msysgit.0,在 Linux 上我有 git 版本 1.7.5.4。

我确实发现了一堆 看似相关的这种性质 SO 问题,但没有一个有明确或相关的解决方案。

更新:文件托管在远程托管服务上,以便 Windows 和 Linux 机器从远程存储库中提取。

4

3 回答 3

2

由于解决方案的怪异,回答我自己的问题。

第一步是 @Don Branson、@VonC 和 @robinst 建议的。我clone在我的 Windows 机器上清理了一个新文件夹。
这似乎不起作用,并且 git 返回了完全相同的错误。

但是git status,尽管存在同名文件夹并包含正确的文件,但将有问题的文件夹显示为“已删除”。
然后我上演并提交了“已删除”文件夹,推送到远程仓库。并从我的原始仓库中提取提交。,分支已正确更新。

于 2012-10-25T13:48:59.560 回答
1

当你git pullgit 将按顺序应用提交。因此,即使最终提交合并了目录,它们也不会出现在它为到达 HEAD 而应用的提交中。我会在 Windows 机器上尝试一个新的 git clone。

于 2012-10-25T13:11:32.407 回答
1

问题可能是 Git在删除name旧目录之前首先尝试创建新文件(使用新名称)。Name因此,当它尝试创建新目录name时,它不会注意到Name已经存在,因为它比较它们区分大小写。

您可以尝试以下操作(当然使用干净的工作目录):

  1. 递归删除my/folder/Name(旧位置)。
  2. git reset --hard origin/branchname(你正在拉的分支)。

或者,只做一个新的克隆。

于 2012-10-25T13:24:20.190 回答