如何配置Git使其追踪文件/文件夹名称的大小写变更?
解决Git不追踪文件/文件夹大小写变更的问题(无需git mv)
我之前也踩过这个一模一样的坑——在Windows上把文件或文件夹重命名成小写后,Git完全没察觉到变化,推送到其他用Linux或macOS的设备上时,仓库状态直接乱了套。既然你不想每次重命名都手动敲git mv,那调整Git的大小写敏感配置确实是最一劳永逸的方案,下面给你拆解具体操作和要注意的细节:
两种配置方式选其一
全局生效(所有本地仓库适用)
如果你希望所有Git仓库都能追踪大小写变更,打开命令提示符或PowerShell,执行这条命令:
git config --global core.ignorecase false
这个配置会存在你的全局Git设置文件里(一般在C:\Users\你的用户名\.gitconfig),以后不管是新克隆的仓库还是已有的老仓库,都会默认启用大小写敏感追踪。
仅当前仓库生效
要是你只想给某个特定仓库开这个功能,先进入仓库的根目录,再执行:
git config core.ignorecase false
这个配置会保存在仓库目录下的.git/config文件里,只对当前仓库起作用。
处理已存在的未追踪变更
注意:上面的配置只对之后的重命名操作生效,如果你已经改了文件名大小写但Git还没识别到,得先让Git扫一遍所有文件:
git add -A然后提交这个变更:
git commit -m "fix: sync case-sensitive file/folder names"
为什么会出现这个问题?
Windows默认用的是大小写不敏感的文件系统,Git为了适配这个特性,在Windows上默认会把core.ignorecase设为true,这就导致它会忽略文件名的大小写变化。改成false后,Git就会严格区分文件名的大小写,和Linux、macOS的行为保持一致,跨设备同步时就不会再出现状态不一致的情况了。
内容的提问来源于stack exchange,提问作者Foez Ahmed
相关产品推荐
相关产品推荐

