如果一開始錯誤設置了 .gitignore
,導致已有文件(例如:快取文件、環境設置等)被 git 跟蹤,即使之後修改了 .gitignore,也不會自動忽略這些已經被跟蹤的文件。
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-branch 或 BFG Repo-Cleaner 等其他工具。
希望對因為不小心被跟蹤的文件而感到困擾的人有所幫助。
今天也向著乾淨的 Git 歷史邁進一步吧!
目前沒有評論。