Git 追蹤檔案更新無效:.gitignore 不生效與大小寫問題

整理 .gitignore 不生效與 Git 無法辨識檔名大小寫變更的原因,以及清除快取、開啟大小寫追蹤與正確更名三種解法。

CChia1104
  • 筆記
  • 1 分鐘閱讀

之前在做開發時很常遇到兩種 git 情況

  • 更新 .gitignore 後,已追蹤的檔案無法被忽略。
  • 更新大小寫檔名,無法被追蹤。

.gitignore 不生效

原因是因為在 git ignore 目錄中,新建的檔案在 git 中會有緩存,如果某些檔案已經被納入了版控中,就算是加在 .gitignore 中也是不起作用的,這時候我們可以把本地快取刪除,然後再進行 git 的 commit 即可

git rm -r --cached .
git add .
git commit -m "fix: update .gitignore"

這裡用 git rm -r --cached . 是所有的檔案緩存清除,也可以各別下檔案路徑。

Git 的檔案名稱大小寫追蹤

git 預設是不追蹤大小寫變更的。

  1. 若是遇到這問題,也可以先把緩存清掉再 commit 一次即可。
git rm -r --cached .
git add .
git commit -m "fix: update file name"
  1. 另一種解法是直接設定讓 git 追蹤大小寫的變更。
git config --local core.ignorecase false
  1. 最後的解法是直接透過 git 來更改檔名
git mv -f readme.md README.md
最後更新

Written by: Chia1104 CC BY-NC-SA 4.0