今天我們來點相對輕鬆、好理解的話題~
前幾天我們學了怎麼 git add
、git commit
,把檔案存進歷史紀錄。
但這時候你可能會發現一個問題:
👉 為什麼一堆奇怪的檔案也被 Git 跟著記錄了?
例如:
node_modules/
:安裝的套件超大一包dist/
、build/
:編譯出來的檔案根本可以重生.env
:裡面放著不能外流的密碼.DS_Store
或 Thumbs.db
:作業系統偷偷加的垃圾檔如果這些東西被 commit 上去,不只會拖慢專案,甚至還可能造成資安危機。
這時候 .gitignore
就能幫你解決問題!
.gitignore
?.gitignore
是一個設定檔,用來告訴 Git:
「這些檔案或資料夾不要管它,別放進版本控制。」
就像你在打包行李的時候,會先把垃圾丟掉,不會把早餐紙袋也塞進行李箱。
在專案根目錄新增一個檔案 .gitignore
,內容像這樣:
# 忽略 node_modules 資料夾
node_modules/
# 忽略編譯出來的檔案
dist/
build/
# 忽略環境設定
.env
# 忽略系統垃圾檔
.DS_Store
Thumbs.db
之後再執行 git status
,就會發現這些檔案自動消失,不會再出現在未追蹤清單裡。
.log
👉 忽略所有 .log
結尾的檔案secret/*
👉 忽略 secret
資料夾底下的所有檔案!important.log
👉 反向規則,把 important.log
加回來假設你已經 commit 了 node_modules/
,這時候 .gitignore
不會自動把它移掉。
因為檔案已經被追蹤了,要手動解除:
git rm -r --cached node_modules/
再 commit 一次,Git 才會真的不管它。
.gitignore
,忽略掉 node_modules/
。debug.log
,試試看 .log
的規則能不能把它忽略掉。.env
這種檔案特別需要忽略?.gitignore
就像專案的「過濾網」,幫你把不該進歷史的東西擋在外面。
養成習慣一開始就設定好 .gitignore
,不但讓專案更乾淨,也能避免不小心把敏感資料外流。