error - git - git修改文件夹名大小写不生效
error - git - git修改文件夹名大小写不生效
原因 - git默认是大小写不敏感
环境
- git version 2.32.0.windows.1
- vscode GitLens
问题描述
测试
vscode GitLens
提交
修改文件夹名称 test -> Test
无记录,修改文件夹内文件
提交记录处仍为小写
提交gitee
git brash
修改文件夹名称 Test -> test
未生效,修改文件夹名称 test -> TEST
无暂存记录,修改文件夹内文件看看
文件夹名称仍未生效
原因 - git默认是大小写不敏感
当git上文件名大小写重命名的修改时(git大小写敏感/默认不敏感),如何重命名并提交
解决方案
git设置成大小写敏感 git config core.ignorecase false(其实这也是个坑)
git大小写不敏感,也就是默认的情况(建议默认)
使用命令:git mv DataExt.xml Dataext.xml
ps: 文件夹重命名 git mv foldername tempname && git mv tempname folderName (在大小写不敏感的系统中,如windows,重命名文件夹的大小写,使用临时文件名)
设置了大小写敏感的怎么提交:(不建议设置)
为什么说设置了大小写敏感也是个坑,因为
分支 | 文件 |
---|---|
A | DataExt.java |
B | Dataext.java |
我在本地的分支B设置了git config core.ignorecase false,并且文件是小写的Dataext.java,接下来如果merge了分支A的话,会出现错误:
error: The following untracked working tree files would be overwritten by merge:
意思是:分支A中的DataExt.java将会重写分支B的文件
那这样的话,假设路人甲和乙都是使用分支A的,你merge他们,就会提示文件将被重写。。。坑啊!
解决方法都是将core.ignorecase设置为true,然后再进行操作,那设置为false又有何意义?
哎。。。对于设置了大小写敏感的修改文件名大小写要怎么提交呢?
首先 记住 将你的文件备份!
然后删除git rm DataExt.java
,将备份文件重命名Dataext.java放到路径下,添加git add Dataext.java
,提交git commit -m '提交说明'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步