git默认不识别文件名大小的写问题

181 阅读2分钟

问题出现

最近公司开发一个新项目,多人开发,一开始规范了各种命名,但是一直忙于进度,并未太过关注细节,直到昨天项目初步成型,我才开始修改不规范的命名,突然发现遇到了 bug。以前学习的时候了解过 git 可以设置对文件名称大小写是否敏感,但是一直没有遇到这方面的问题,现在真心遇到了。具体的bug过程如下:

第一步

  • bug:本地修改完文件名,推送到git,显示没有最新修改,无法推送
  • 解决方案:查看 git 大小写敏感git config core.ignorecase,发现为 true 也就是关闭了大小写敏感,通过这行命令全局打开一下 git 大小写敏感git config core.ignorecase false --global,再次查看 git 大小写敏感,发现为false了

第二步

  • bug:此时,将文件重新推送上 git ,发现好像好了,但是又没有完全好, add , commit 提交的过程也很正常,然后发现 git 仓库中同时出现了大小写开头的文件!!!然后重新换个地方重新拉取最新项目只能拉取到小写开头的文件,在原来的地方git pull,又只能拉到大写的文件,崩溃!!!
  • 解决方案:1. 直接在git上删除文件,但是后期会爆很多bug。 2. 直接使用以下命令重命名文件,git mv -f [你想要删掉的文件] [你想要留下的文件],一个一个来,会非常慢。 3. 团队所有人推送最新代码到仓库,由我拉取下来,按规范命名修改完毕后,删除原 git 仓库代码,直接推送最新版。

结论

  • 未来在新人加入团队开发时,务必先调整 git 大小写敏感,再进行git操作,避免出现类似问题。
  • 项目规范非常重要,不可大意,从一开始就要调整好,不能事后去做,不然会出现很多奇奇怪怪的问题。