问题背景
Git 默认配置是大小写不敏感 的(尤其在 Windows 和 macOS 系统上)。这会导致一个常见问题:当你仅修改文件名的大小写(如 file.js
→ File.js
)时,Git 无法识别变更。这是因为系统文件系统不区分大小写,而 Git 默认遵循系统行为。
典型问题场景:
bash
# 重命名文件(仅修改大小写)
mv index.js Index.js
# 检查 Git 状态
git status
# 无变更显示!(但实际文件已重命名)
解决方案:启用大小写敏感配置
1️⃣ 仅针对当前仓库配置
在项目根目录执行:
bash
git config core.ignorecase false
2️⃣ 全局配置(影响所有仓库)
bash
git config --global core.ignorecase false
验证配置是否生效
bash
git config --get core.ignorecase
# 返回 false 表示配置成功
最佳实践建议
bash
# 推荐全局配置(避免遗忘)
git config --global core.ignorecase false
# 重要项目额外加固(提交配置到仓库)
echo "* text=auto" > .gitattributes
git add .gitattributes
git commit -m "Enforce case-sensitive config"
系统差异说明:
系统 默认行为 建议配置 Windows 不区分大小写 core.ignorecase false
macOS 不区分大小写 core.ignorecase false
Linux 区分大小写 无需修改