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 '提交說明'