Git:文件重命名

时间:2010-10-13 06:02:37

标签: macos git case-insensitive

我想将文件夹从“Frameworks”重命名为“frameworks”,但git不会让我添加新的小写名称。我想它会对文件名不区分大小写,是吗?

git add frameworks/ -f没有帮助

3 个答案:

答案 0 :(得分:97)

您可以尝试:


但案例问题(例如在Windows上)在msysgit issue 228中描述(再次:这应该now -- June 2014 -- work with git 2.0.1

  

总有一个选项可以在配置文件中将ignorecase设置为false,这将强制Unix在NTFS之上使用Git语义。
  Git支持这种行为,但它不是默认的 - 从NTFS的角度来看a.txt   和A.txt是一回事 - 所以Git试图像大多数用户所期望的那样保留它

  

作为更好的解决方法,您可以

git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
     

,这也改变了存储在磁盘上的文件的大小写。

这篇博客文章illustrates the same issue on MacOs在rebase期间:

  

Mac OS X文件系统的默认设置是它们不区分大小写。 FFFFFF.gifffffff.gif相同。

     

如果您删除有问题的文件,只是从文件系统而不是Git索引,请注意,您可以合并有问题的分支,并让它恢复文件,就好像什么都没发生一样。

     

步骤非常简单:

$ rm file/in/question.gif
$ git merge trunk

无论如何,remember what git mv stands for

mv oldname newname
git add newname
git rm oldname

,因此,如果newnameoldname发生冲突,则需要将它们区分开来(即使只是在短时间内),因此git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt

答案 1 :(得分:2)

如果你碰巧在Github上主持,你可以在他们的网站上使用重命名功能。不得不改变5个文件的大小,发现它工作得很好。

答案 2 :(得分:1)

我遇到了类似的问题,并且无法获得新的文件夹名称(不同的案例)来更改远程回购。我发现最简单的解决方案就是将文件移出repo并提交。触发删除操作。然后重新添加,当我添加时,它带来了正确的情况。