git拉错误

时间:2012-10-25 09:30:15

标签: git cross-platform

我正在尝试将Linux机器上的提交提取到Windows机器中。我收到此错误消息:

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

Linux 计算机上,似乎有2个名为'name''Name''name'文件夹。即使在'name'下将它们联合起来并重新提交之后,我仍然会收到相同的错误消息。

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

我确实发现了bunch of seemingly related个SO这类问题,但没有一个有明确或相关的解决方案。

更新:这些文件托管在远程托管服务上,以便Windows和Linux计算机从远程仓库中提取。

3 个答案:

答案 0 :(得分:2)

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

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

但是git status将违规文件夹显示为“已删除”,即使存在同名文件夹且包含正确的文件。
然后我上演并提交了“已删除”文件夹,推送到远程仓库。并从我原来的回购中提取。 Lo-and-behold 分支已正确更新。

答案 1 :(得分:1)

当你git pull git将按顺序应用提交时。因此,即使目录由最终提交合并,它们也不会在它应用于提交到HEAD的提交中。我会在Windows机器上尝试一个新的git克隆。

答案 2 :(得分:1)

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

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

  1. 递归删除my/folder/Name(旧位置)。
  2. git reset --hard origin/branchname(你要拉的分店)。
  3. 或者,只需做一个新的克隆。