Git:文件重命名

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

一个git add frameworks/ -f没有帮助

你可以试试:

  • "git mv -f foo.txt Foo.txt" (注意: 从git 2.0.1开始不再需要 )
  • 在configuration文件中将ignorecase设置为false。

但在msysgit问题228中描述了案例(例如在Windows上)的问题 (再次: 现在应该是 – 2014年6月 – 使用git 2.0.1 )

总是有一个选项可以在configuration文件中将ignorecase设置为false,这会迫使Unix像Git语义在NTFS之上。
Git支持这种行为,但它不是默认的 – 从NTFS的angular度来看, a.txtA.txt是一样的东西 – 所以Git试图保留,因为大多数用户会期望

作为一个更好的解决方法,你可以

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

,这也改变了存储在磁盘上的文件的情况。

这个博客文章说明了在重build期间在MacOs上的相同问题 :

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

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

步骤非常简单:

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

总之, 请记住git mv的含义 :

 mv oldname newname git add newname git rm oldname 

,所以如果newnameoldname冲突,你需要使它们不同(即使它只是一个短的时间),因此git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt

如果您碰巧在Github上托pipe,则可以在其网站上使用重命名function。 必须改变5个文件的shell,发现它工作得很好。

我有一个类似的问题,不能得到一个新的文件夹名称(不同的情况下)在远程回购更改。 我发现最简单的解决scheme只是将文件移出回购和提交。 触发删除操作。 然后重新添加,当我添加时,它进入了适当的情况。