Git 是对大小写不敏感的,所以在 Git 里文件重命名时很容易碰到一个问题,即当文件已经被 push 到远程仓库后,在本地资源管理器中直接右键修改文件名时仅仅修改了大小写,例如 Test.js -> test.js ,Git 不会认为该文件进行了改变。

    此时在 Git 跟踪管理中的还是 test.js(可使用 git ls-files 命令查看 Git 跟踪的文件信息), 就会导致很多奇奇怪怪的问题,解决方法如下:

    (1)使用 Git 重命名的方式改名

    1. git mv <old_file_name> <new_file_name>
    2. # eg: git mv Test.js test.js

    (2)开启 Git 大小写敏感

    1. # 查看 Git 当前大小写敏感的状态
    2. git config --get core.ignorecase
    3. # 设置 Git 大小写敏感
    4. git config core.ignorecase false
    5. # 此时在资源管理器中重命名会被 Git 监听到,但是改名后的文件成为了新增的文件。因此需要先删除远程已经存在的重命名前的文件,再 add 新增的更名后的文件,否则远程会同时存在大小写两份。
    6. # 删除远程重命名前的文件
    7. git rm -r --cached 文件名