当前位置: 代码网 > it编程>编程语言>其他编程 > git一次大小写目录名导致远程仓库出现两套代码的踩坑及解决

git一次大小写目录名导致远程仓库出现两套代码的踩坑及解决

2026年09月28日 • 其他编程 •我要评论
前言在 windows 上开发,有时候我们会顺手把目录名从小写改成驼峰,比如 emailconfig → emailconfig改完后一看本地文件正常,ide 也没报错,就放心地继续开发了p

前言

在 windows 上开发,有时候我们会顺手把目录名从小写改成驼峰,比如 emailconfig → emailconfig

改完后一看本地文件正常,ide 也没报错,就放心地继续开发了

push 到远程后,却发现——仓库里居然同时存在 emailconfig 和 emailconfig 两套代码! 更诡异的是,本地 git status 干干净净

打开远程仓库

ruoyi-ui/src/views/system/emailconfig/      ← 旧的,还在!
ruoyi-ui/src/views/system/emailconfig/      ← 新的,也在!

本地执行 git status,输出却极其干净:

on branch xx
your branch is up to date with 'origin/xx'.

1. 原理

1.windows 的 ntfs 默认是大小写不敏感的

emailconfig 和 emailconfig 在 windows 眼里是同一个文件夹

手动重命名后,文件系统只是更新了显示名称,底层路径对 git 来说"看起来没变"

2.git 的 core.ignorecase 默认是 true

git 在 windows 安装时,会自动把 core.ignorecase 设为 true

这意味着 git 默认忽略仅大小写变化的文件名/目录名变更

3.远程仓库(linux)是大小写敏感的

2. 实战

先确认 git 索引里到底存了几套路径:

git ls-files | findstr "emailconfig"

输出:

ruoyi-ui/src/views/system/emailconfig/components/configmodal.vue
ruoyi-ui/src/views/system/emailconfig/components/testmodal.vue
ruoyi-ui/src/views/system/emailconfig/index.vue
ruoyi-ui/src/views/system/emailconfig/components/configmodal.vue
ruoyi-ui/src/views/system/emailconfig/components/testmodal.vue
ruoyi-ui/src/views/system/emailconfig/index.vue

实锤了:git 索引里同时存在 emailconfig 和 emailconfig 两套记录

而 git status 之所以不显示,是因为 windows 文件系统把这两个路径映射到了同一个物理目录,git 认为"工作区和索引一致"

截图如下:

具体步骤如下:

# 1. 关键:让 git 临时区分大小写,防止误删大写的目录
git config core.ignorecase false

# 2. 只从 git 索引中删除旧的小写目录(--cached 不碰本地文件)
git rm -r --cached ruoyi-ui/src/views/system/emailconfig

# 3. 把正确的大写目录重新加入索引
git add ruoyi-ui/src/views/system/emailconfig

# 4. 查看状态,应该能看到大量 delete 和 rename
git status

# 5. 提交
git commit -m "refactor: remove duplicate emailconfig, keep emailconfig"

# 6. 推送
git push origin xx

# 7. 恢复设置(防止以后踩坑)
git config core.ignorecase true

注意事项:

  1. 不要直接 rd /s /q 删除 windows 大小写不敏感,直接删除 emailconfig 可能会误删 emailconfig 的物理文件
  2. 不要长期保持 ignorecase=false 这个配置在团队协作中容易引发冲突,改完记得恢复

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

赞 (0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com