解決 Git 不區分大小寫導致的檔案衝突問題

2022-09-21 20:42:21 字數 1130 閱讀 5235

有些同學在 git 倉庫對檔案/資料夾進行命名時,剛開始是小寫,後來為了保持團隊一致,又改成了大寫,然而 git 不會發現大小寫的變化,此時就出了問題:導致倉庫裡出現了 大小寫 同時存在的兩個檔案。但在 windows、mac 的電腦磁碟裡,肉眼卻能只看到乙個檔案,實在奇葩。

(1)新建乙個 test 檔案(大小寫不敏感的狀態下),並提交。

(2)本地修改 test 變為 test,檔案內容無變更,無法提交。

(3)執行git config core.ignorecase false,設 置git的規則為 區分大小寫(大小寫敏感),然後 git push 提交,檢視結果,此時遠端倉庫會存在 大小寫 同時存在的檔案,但本地倉庫卻只看到其中乙個檔案。

(4)甚至可能出現這種異常情況:本地暫存區的檔案,怎麼刪也刪不掉。再之後,從 test 嘗試改為 test 時,提示命名衝突。

git mv test test
執行上面的命令時,會報錯:fatal: renaming 'test' failed: invalid argument

# 將本地的 test、test 目錄都刪掉,並生成乙個新的目錄 temp

git mv test temp

# 將 temp 目錄改成 test 目錄。此時,專案中只會存在 test 目錄,不會存在 test 目錄。目標達成。

git mv temp test

執行完上面的兩個命令之後,專案中只會存在 test 目錄,不會存在 test 目錄。目標達成。

我們知道:針對檔案/資料夾,windows 系統和 mac 系統是不區分大小寫的;linux 系統是區分大小寫的;git 預設是不區分大小寫的,也可以通過改配置項,改為區分大小寫。

前面講到,git 預設是不區分大小寫的,可以通過命令git config --get core.ignorecase查到,預設值是 true。

我們也可以修改 git 的這一配置項,改為區分大小寫,配置命令為git config core.ignorecase false

但我建議你保留 git 的預設配置項,不要隨意自行修改,避免產生其他的麻煩。

Git 預設不區分大小寫

背景 通過 規範,修改了包名為全小寫 修改了資料夾目錄 但發現push後,git伺服器的資料夾目錄還是為大寫 解決方法 git預設是不區分大小寫的,意思是你修改乙個檔名 資料夾的時候,git status 是不會提示你有修改的 可以通過git config get core.ignorecase 檢...

git 上傳不區分大小寫

一 背景 專案建立資料夾,提交 後,發現資料夾名稱大小寫不對,改動資料夾名稱 小寫變成大寫 後,push 發現git 倉庫資料夾名稱並沒有變回來,下拉 執行,依然會報錯 二 解決辦法 git預設是不區分大小寫的,意思是你修改乙個檔名 資料夾的時候,git status 是不會提示你有修改的 可以通過...

ASP中的區分大小寫與不區分大小寫

asp中的變數,關鍵字不區分大小寫,這誰都知道。但在有些地方又是區分大小的。在下面這種密碼驗證時就不區分大小寫,這樣就增加了asp不安全因素 select from admin where username username and password password 這時的 password 的值...