iT邦幫忙

0

Day 14:【Git 忽略設定】`.gitignore` 檔案設定:排除 node_modules、環境變數與敏感檔案

  • 分享至 

  • xImage
  •  

💡 前言

昨天我們學會了如何在 VS Code 內進行基本的 Git 提交與推送。然而,在將專案推送到 GitHub 之前,你有沒有想過:像動輒幾百 MB 的 node_modules 資料夾、包含資料庫密碼的 .env 設定檔,或是作業系統產生的隱藏暫存檔,真的需要跟著程式碼一起上傳到雲端嗎?

答案是:絕對不行! 為了保護機密資料並保持專案輕量,我們需要透過 .gitignore 檔案來精準過濾不需要加入版控的檔案。今天 Day 14 就來帶大家掌握 .gitignore 的核心規則與寫法!


🎯 本篇重點

  1. 為什麼需要 .gitignore?(資安危機與容量肥大)
  2. .gitignore 的基本語法規則
  3. 前端/後端專案必備的忽略清單範例
  4. VS Code 輔助工具與常見踩坑點

🛡️ 1. 為什麼一定要設定 .gitignore?

如果沒有設定忽略規則,直接把專案推上 GitHub,通常會遇到兩個大麻煩:

• 資訊安全外洩:
如果你把 API 金鑰、資料庫密碼或 JWT Secret 直接寫在程式碼或 .env 檔案中並 Push 到公開倉庫,不到幾分鐘就會被自動化腳本掃走,造成帳號被盜或產生巨額雲端帳單。
• 專案肥大與重複下載:
像 Node.js 專案的 node_modules 裡面動輒有幾萬個小檔案,容量高達數百 MB。其實這些依賴套件只要透過 npm install 就能在任何電腦上重新下載,完全不需要加入 Git 版本控制。


📝 2. .gitignore 的基本語法規則

在專案根目錄建立一個名為 .gitignore 的純文字檔案(注意前面有一個點 .),每一行代表一條忽略規則:

• 忽略特定資料夾:
node_modules/ (結尾加斜線代表這是一個資料夾)
• 忽略特定副檔名檔案:
*.log (忽略所有副檔名為 .log 的檔案)
• 忽略特定檔案:
.env (忽略環境變數檔案)
• 例外保留規則 (!):
若想忽略某個資料夾,但保留其中的特定檔案,可以使用 ! 符號:

temp/
!temp/keep.git


📋 3. 實用 .gitignore 範例(可直接複製)

以下是一份涵蓋前端、後端與作業系統暫存檔的通用 .gitignore 範本,適用於多數 JavaScript / Python 專案:

# --- 1. 系統與編輯器暫存檔 ---
.DS_Store
Thumbs.db
.vscode/
*.suo
*.ntvs*
*.njsproj
*.sln
*.swp

# --- 2. 依賴套件與打包輸出 ---
node_modules/
jspm_packages/
dist/
build/
*.pyc
__pycache__/

# --- 3. 環境變數與機密設定 ---
.env
.env.local
.env.*.local

# --- 4. 偵錯與日誌檔 ---
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
logs/
*.log


🛠️ 4. 實用小技巧:如果檔案已經被 Commit 了怎麼辦?

有時候我們不小心已經把 node_modules 或 .env 提交到 Git 紀錄中,才寫 .gitignore 會發現它沒有生效。

解決步驟:

  1. 先將該檔案或資料夾從 Git 快取中移除(但保留本地檔案):
git rm -r --cached node_modules

  1. 更新 .gitignore 檔案。
  2. 重新執行 Commit 與 Push,就能完美將其從遠端倉庫中清除!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言