如果一開始錯誤設置了 .gitignore,導致已有文件(例如:快取文件、環境設置等)被 git 跟蹤,即使之後修改了 .gitignore,也不會自動忽略這些已經被跟蹤的文件。

在 Git 中解除不必要的文件跟蹤圖片


1. 在 .gitignore 中添加想要忽略的文件(或目錄)

示例:

# .gitignore
*.log
__pycache__/
.env

2. 解除已被跟蹤的文件的 跟蹤(也就是讓 git 不再跟蹤)

例如,如果希望 git 忽略已提交的 .env 文件,
可以執行以下命令。

git rm --cached .env
  • --cached 選項會保留本地文件,僅解除 git 的跟蹤

  • 如果是文件夾(例如:__pycache__/),則可以這樣:

    bash git rm -r --cached __pycache__/


3. 提交變更

git add .gitignore
git commit -m "更新 .gitignore 並移除不需要的跟蹤文件"

這樣一來,以後該文件/文件夾就會被 git 忽略。 (不過,已經提交的過去歷史仍然存在,但未來將不再被跟蹤。)


想要一次性解除多個文件的跟蹤?

要一次性解除所有 .gitignore 中添加的文件,可以這樣做:

git rm -r --cached .
git add .
git commit -m "將 .gitignore 應用到現有文件"
  • 此方法會重新暫存所有文件,請謹慎使用! (為了避免提交歷史混亂,請仔細檢查變更!)

參考/提示

  • 可以使用 git status 檢查取消跟蹤的狀態是否應用成功!

  • 要完全刪除已經上傳到遠端(例如 GitHub)的敏感文件,需要使用 git filter-branchBFG Repo-Cleaner 等其他工具。


希望對因為不小心被跟蹤的文件而感到困擾的人有所幫助。
今天也向著乾淨的 Git 歷史邁進一步吧!