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.txt
和A.txt
是一样的东西 – 所以Git试图保留,因为大多数用户会期望
作为一个更好的解决方法,你可以
git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
,这也改变了存储在磁盘上的文件的情况。
这个博客文章说明了在重build期间在MacOs上的相同问题 :
Mac OS X文件系统上的默认设置是不区分大小写的。
FFFFFF.gif
与ffffff.gif
相同。如果你从文件系统中删除文件,而不是从Git索引中删除,请注意,你可以合并有问题的分支,让它恢复文件,就好像什么也没发生一样。
步骤非常简单:
$ rm file/in/question.gif $ git merge trunk
总之, 请记住git mv的含义 :
mv oldname newname git add newname git rm oldname
,所以如果newname
和oldname
冲突,你需要使它们不同(即使它只是一个短的时间),因此git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
如果您碰巧在Github上托pipe,则可以在其网站上使用重命名function。 必须改变5个文件的shell,发现它工作得很好。
我有一个类似的问题,不能得到一个新的文件夹名称(不同的情况下)在远程回购更改。 我发现最简单的解决scheme只是将文件移出回购和提交。 触发删除操作。 然后重新添加,当我添加时,它进入了适当的情况。