git 修改大小写远程分支失败
先说原因: windows大小写不敏感导致
最近由于项目需求,改回了windows开发环境,之前一直是 mac 开发环境,结果在windows环境下使用 git 时,
把某个之前大写的文件夹名称改成了小写的文件夹名称并成功提交,然后协作的同事拉取分支就出问题了。
现象:本地分支大写改为小写并成功提交后,远程分支并未真正修改,其它协作小伙伴拉取分支后出现问题
网上搜了一下,然后说将git 配置成大小写敏感
git config core.ignorecase false
表面上解决了问题,实则有大坑。
不要通过
git config core.ignorecase false
去关闭 git 大小写敏感,因为会导致其它分支合并出现未覆盖冲突,会一脸蒙B。
“修改远程分支大小写正确做法”:
- 先在本地分支备份
- 本地分支 rm 删除需要修改文件或文件夹并
- 将此次rm删除提交至远程分支
- add 将原备份的添加回本地分支
- 提交此次添加 add 至远程分支
如果你之前已经通过修改后提交了,导致了一些其它的问题。请按以下步骤复原
- 找到之前的版本 "commit id" 即通过 git log 命令找到最近未修改并状态正常的分支
- 回滚到此版本 git reset --hard "commit id"
由于大小写文件修改导致切换分支时显示 有未跟踪的文件无法切换分支
可以使用 -f 强制切换到目标分支
git checkout -f 目标分支
最后,按 “修改远程分支大小写正确做法”