Windows系统下Git不识别文件名大小写变更报bad source如何解决?
Windows系统Git文件名大小写重命名报错解决方案
问题原因
Windows默认使用的NTFS文件系统对文件名大小写不敏感,同时Git默认配置core.ignorecase = true,会忽略文件名大小写差异,因此直接修改文件名大小写或者执行git mv修改大小写时,会触发fatal: bad source报错。
解决方法
方案一:修改Git大小写忽略配置
- 临时关闭当前仓库的大小写忽略配置:
git config core.ignorecase false - 执行重命名操作:
git mv Buypage BuyPage - 按需恢复默认配置,避免后续出现不必要的大小写冲突:
git config core.ignorecase true - 提交变更即可:
git commit -m "rename Buypage to BuyPage"
方案二:两步更名法(无需修改配置)
该方法通过中间过渡名绕过大写敏感校验,通用性更强:
- 先将文件重命名为任意中间名:
git mv Buypage temp_file - 再将中间名改为目标名称:
git mv temp_file BuyPage - 提交变更即可。
方案三:适配已手动修改文件名的场景
如果已经手动把文件名改成了BuyPage,Git未识别变更,可直接操作Git缓存:
- 删除Git缓存中旧名称的文件记录:
git rm --cached Buypage - 添加新名称的文件到暂存区:
git add BuyPage - 提交变更即可。
注意:如果是团队协作场景,操作完成后需要告知其他协作者拉取最新代码后,手动删除本地残留的旧名称文件,避免本地同时存在两个大小写不同的同路径文件,引发后续提交冲突。
内容的提问来源于stack exchange,提问作者minjae kim
相关产品推荐
相关产品推荐

