我重命名了我的文件
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
`
答案 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.erb
和git 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