解决 Git 默认不区分文件名大小写的问题

1,624 阅读2分钟

不得不说 Git 默认不区分文件名大小写真是一个大坑,由于之前的项目目录比较乱,项目下的文件夹命名都不规范,这两天一直在整理,然后今天从服务器将项目重新 clone 下来后发现,之前将所有文件名首字母改成大写的改动全部没变,本地又测试了一下后发现 Git 提交文件名称默认是不区分大小写的,之前的整理又得重新做一遍,下面就分享一下怎么解决这个问题。


  • 当你创建一个仓库后,添加一个文件叫 README.md ,然后再提交推送到远程仓库。

  • 然后你在本地将刚才的文件名修改为 readme.md ,接着你去提交,发现没有任何改动可以提交。

  • 所以 Git 默认对于文件名大小写是不敏感的,所以上面虽然修改了文件名大小写,但是 Git 并没有发现有任何的改动。

解决办法

  • 打开终端 cd 到本地项目的 Git 仓库下,输入以下命令来配置 Git 使其对文件名大小写敏感。
git config core.ignorecase false
  • 修改完成后,当你修改文件名大小写时,Git 就会提示有提交信息了。

  • 但是这时候如果直接提交推送的话,会出现一个情况,本地仓库明明只有一个文件,并且文件名改成了小写 readme.md

本地仓库

  • 但是远程仓库上大写的 README.md 却没有被删除,居然同时存在了,并且 Git 也没有提示任何的提交信息,这个非常之坑。

远程仓库

  • 更加坑爹的是当你把本地仓库删掉后,重新从远程仓库 clone 下来发现,还是只有小写的 readme.md 这一个文件。

本地仓库

  • 至于为什么会这样,我也不知道,只能等待大神来解释一下,我的解决办法就是先将原来的大写文件 README.md 从远程仓库删除,然后再将修改后的 readme.md 添加进去再提交推送。

希望有大神能够有其他更有效的解决办法。

将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。

我的传送门: 博客简书微博GitHub