【windows】解决git仓库出现名字大小写不同但内容相同的文件

772 阅读1分钟

问题描述

假定已经存在一个文件在git仓库,现在要改变该文件的大小写,因为git默认是忽略大小写的,所以我们在本地改了名字是不会记录修改的,这时候通过git config core.ignorecase false设置git不忽略大小写,我们可以顺利监控到文件变动,并且提交到远程仓库。

但是问题来了,到远程仓库去看会发现修改前的文件保留下来了,也就是说有两个文件,名字大小写不同,但内容相同,而且你本地却只会显示一个,即使你重新拉取一遍仓库,也仍然无法看到两个文件,甚至在拉取仓库过程中还出现了警告:

warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

解决办法

其实虽然我们看不到两个文件,但是它们是确实存在的,我们可以通过以下方式删除不需要的那个文件:

# 两个文件分别为a.js和A.js,删除a.js
git rm a.js

假如是两个文件夹

# 两个文件夹分别为a和A,删除a,添加-r命令遍历删除a文件夹所有文件
git rm -r a