先说原因: windows大小写不敏感导致
 
最近由于项目需求,改回了windows开发环境,之前一直是 mac 开发环境,结果在windows环境下使用 git 时,
把某个之前大写的文件夹名称改成了小写的文件夹名称并成功提交,然后协作的同事拉取分支就出问题了。
 
现象:本地分支大写改为小写并成功提交后,远程分支并未真正修改,其它协作小伙伴拉取分支后出现问题
 
网上搜了一下,然后说将git  配置成大小写敏感

git config core.ignorecase false

 

表面上解决了问题,实则有大坑。

不要通过 
git config core.ignorecase false
去关闭 git 大小写敏感,因为会导致其它分支合并出现未覆盖冲突,会一脸蒙B。
 
“修改远程分支大小写正确做法”:
  1. 先在本地分支备份
  2. 本地分支 rm 删除需要修改文件或文件夹并
  3. 将此次rm删除提交至远程分支
  4. add 将原备份的添加回本地分支
  5. 提交此次添加 add 至远程分支
 
如果你之前已经通过修改后提交了,导致了一些其它的问题。请按以下步骤复原
  1. 找到之前的版本 "commit id" 即通过 git log 命令找到最近未修改并状态正常的分支
  2. 回滚到此版本 git reset --hard "commit id"

 

由于大小写文件修改导致切换分支时显示 有未跟踪的文件无法切换分支
可以使用 -f 强制切换到目标分支
git checkout -f 目标分支
 
最后,按 “修改远程分支大小写正确做法”