Git克隆或拉取时文件名变为全小写的问题解决咨询
问题根源
Windows NTFS文件系统默认大小写不敏感,Git 2.33.0版本在与Windows文件系统交互时,偶发出现文件名大小写自动转换的问题——哪怕远程仓库没有全小写的文件,也会在克隆/拉取时错误生成,破坏Python的大小写敏感导入逻辑。
具体解决步骤
强制Git开启大小写敏感检查
优先给单个仓库配置(避免影响其他项目):进入仓库目录,执行git config core.ignorecase false
如果需要全局生效,执行git config --global core.ignorecase false
这个配置让Git严格区分文件名大小写,不会自动忽略或转换差异。清理本地缓存并重新同步
如果已经出现错误的小写文件,先备份本地未提交的修改,然后执行以下命令重置本地仓库:git rm -r --cached . git reset --hard HEAD这会清除本地缓存的文件索引,强制从远程拉取正确的文件名。
排查仓库历史提交
用git log --oneline --name-status查看历史提交,确认是否存在过文件名大小写修改的误操作记录。这类历史遗留可能导致Git在Windows上解析异常,确保远程仓库的最新提交没有这类问题。升级Git版本
Git 2.33.0存在Windows平台大小写处理的已知bug,后续版本已修复,建议升级到最新稳定版(如2.40及以上)。开启NTFS文件夹大小写敏感
以管理员身份打开命令提示符,进入仓库所在的上级目录,执行:fsutil file setCaseSensitiveInfo <你的仓库文件夹名> enable
这个设置让该文件夹下的NTFS系统严格区分大小写,从系统层面避免文件名被自动转换。
内容的提问来源于stack exchange,提问作者DavidTheWin

