Git 是对大小写不敏感的,所以在 Git 里文件重命名时很容易碰到一个问题,即当文件已经被 push 到远程仓库后,在本地资源管理器中直接右键修改文件名时仅仅修改了大小写,例如 Test.js -> test.js
,Git 不会认为该文件进行了改变。
此时在 Git 跟踪管理中的还是 test.js(可使用 git ls-files
命令查看 Git 跟踪的文件信息), 就会导致很多奇奇怪怪的问题,解决方法如下:
(1)使用 Git 重命名的方式改名
git mv <old_file_name> <new_file_name>
# eg: git mv Test.js test.js
(2)开启 Git 大小写敏感
# 查看 Git 当前大小写敏感的状态
git config --get core.ignorecase
# 设置 Git 大小写敏感
git config core.ignorecase false
# 此时在资源管理器中重命名会被 Git 监听到,但是改名后的文件成为了新增的文件。因此需要先删除远程已经存在的重命名前的文件,再 add 新增的更名后的文件,否则远程会同时存在大小写两份。
# 删除远程重命名前的文件
git rm -r --cached 文件名