重命名文件后,git push不会更新服务器上的文件名

时间:2014-08-12 21:13:11

标签: git

我重命名了我的文件

 appliances.html.erb  =>  Appliances.html.erb

并且,我发送了推送到服务器。文件名在服务器上没有更改,但内容没有。

我检查了.gitignore.gitignore-global。这个文件不存在。

好像,文件正在服务器上更新,但文件名不是

怎么可能?以及如何解决它?

编辑:完成后

git mv  app/views/landing_pages/appliances.html.erb  app/views/landing_pages/Appliances.html.erb`

fatal: destination exists, source=app/views/landing_pages/appliances.html.erb, destination=app/views/landing_pages/Appliances.html.erb

`

3 个答案:

答案 0 :(得分:3)

OS X是问题 - 或者更确切地说,它的文件系统是HFS +。它的情况 - 保留,但不是(在经典的Unix风格中)case- 敏感。所以文件名的两个变体被认为是相同的,在git试图重命名它们的过程中的某个时刻。

这显然不是一个完全致命的问题,因为它可以在OS X中执行类似于" mv filename文件名"的操作。但" mv文件名filename"失败。它变得有趣的地方 - 只有一个保留大小写的文件系统 - 你可以有一个名为"文件名"的文件,类似于" mv filename fileName"仍会重命名。

我自己遇到了这个问题,我很遗憾地说我从来没有真正弄清楚如何在我的Mac上修复它。我最终在我克隆的repo上做了提交,这是在带有ext3文件系统的Linux机器上。然后我删除了我的Mac上的问题文件,撤消了更改,并以新的方式重新创建了它,即IIRC。

答案 1 :(得分:0)

您有git rm appliances.html.erbgit add Appliances.html.erb吗?

答案 2 :(得分:0)

  

怎么可能?

阅读https://stackoverflow.com/a/25274416/1377943

  

如何解决?

只需使用force标志即可。所以,在这种情况下

git mv  app/views/landing_pages/appliances.html.erb  app/views/landing_pages/Appliances.html.erb -f