Git Commit大小寫問題

在工作上可能會遇到檔案名稱大寫小編輯錯誤就先Commit 並且Push,又或者未依照Code Style規範,導致後續要進行修改。

在修改會遇到找不到差異的問題。(以下是步驟)

  • 新增test資料夾或檔案
  • Commit>Push test
  • 修改名稱大小換小寫、小寫換大寫
  • Commit>Push Test

  • Commit>Push Test 並沒有差異檔案

這邊提供兩個解法

  • 暴力法
  • 修改Config(不建議)

暴力法

  • 修改檔名(任意)
  • Commit
  • 修改檔名(目標名稱)
  • Commit
  • Push

結果如同預期的順利改

 修改Config

將原本修改成功大寫的TEST改為小寫test,設定ignorecase = false。

Path:/.git/config
ignorecase = false

執行Commit比對異動檔案。

執行Push,雖然 Push成功但是目錄變成兩個(TEST、test),這是因為Git本身對於大小寫的支持並不靈敏。

拉一版新的下來檢查結果,可以看只有大寫的TEST並不是我們最後Push的小寫test。

做一個小測試在原本的Git目錄(test)新增檔案,然後到新的Git目錄(TEST)做Pull會看到那些檔案。

回到原本的Git 目錄(test)新增檔案 (Test – 複製.cs)Commit>Push

再到新的Git目錄(TEST)Pull


會發現在原本的Git 所Push一起被跟新下來並且這個檔案在這邊是沒有加入版控。

到目前為止已經有點混亂,建議如果要修改檔案名稱大小寫在Windows、Mac上都是建議直接使用暴法,若是在Linux可區分大小寫的OS在考慮調整Git Config並且要與團隊成員取得共識。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *