不得不说
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
这一个文件。
所以,这个时候你需要还需要做几步操作:
1、执行以下命令,先将远程目录删除:
git rm -r directory_name
2、提交这个更改:
git commit -m “Delete remote directory”
3、推送到远端
git push remote_name branch_name
完成上述步骤后,远程目录将被删除。记得在执行任何操作前备份重要的数据,以免意外删除。