Git Ignore:排除檔案的完整指南
更新日期: 2024 年 12 月 9 日
本文為 GitHub 操作指令教學,第 4 篇:
- GitHub Issue 與 Git Commit 命名指南
- Git Clone:初次複製專案的完整指南
- 使用 git fetch 與 git pull, 從 GitHub 取得最新檔案內容
- Git Ignore:排除檔案的完整指南 👈 所在位置
- 修改 Git 提交訊息與內容的完整指南
- GitHub 上傳檔案完整指南
- 發佈 Pull Request 與重新提交的完整指南
建議閱讀本文前,先閱讀完 Git 指令基本介紹教學 系列文
在使用 Git 進行版本控制時,並非所有檔案都需要加入儲存庫。
一些特定的檔案,例如暫存檔、環境設定檔或第三方依賴,通常只與本地開發相關,不需要與其他開發者共享。
這時候,我們可以使用 .gitignore
檔案來排除這些檔案。
本文將為新手介紹如何設定 .gitignore
,並列出常見需要排除的檔案類型,幫助您更有效地管理專案。
什麼是 .gitignore
?
.gitignore
是一個特殊的檔案,放置於 Git 儲存庫的根目錄中,用來指定哪些檔案或目錄應該被 Git 忽略。
當 Git 執行版本控制時,會根據 .gitignore
中的規則自動排除符合條件的檔案。
為什麼需要 .gitignore
?
- 減少專案雜亂
排除不必要的檔案,使儲存庫保持簡潔,方便管理。 - 保護敏感資訊
防止上傳含有敏感資訊的檔案(如 API 金鑰、密碼設定檔)。 - 提高專案效能
排除無用的檔案或目錄(如第三方依賴),減少版本控制的負擔。
常見需要排除的檔案
以下是幾類常見應該排除的檔案或目錄:
1. 資料庫檔案
- 原因:資料庫檔案通常很大且僅與本地開發環境相關。
- 範例:
db.sqlite3
2. 虛擬環境檔案
- 原因:虛擬環境包含依賴程式庫,其他開發者可通過環境設定檔自行建立環境。
- 範例:
venv/
3. 第三方依賴
- 原因:如 Node.js 的
node_modules
目錄,包含大量第三方模組,會佔用大量空間且可通過依賴檔重建。 - 範例:
node_modules/
4. 編譯檔與暫存檔
- 原因:這些檔案通常是編譯過程的產物,會隨著專案重新編譯而變化,無需版本控制。
- 範例:
*.log *.tmp *.cache
5. 個人設定檔
- 原因:如編輯器設定檔(VSCode 或 IntelliJ IDEA),這些檔案與開發者的個人環境相關,無需共享。
- 範例:
.vscode/ .idea/
6. 作業系統產生的檔案
- 原因:這些檔案是作業系統的臨時檔案,對專案沒有意義。
- 範例:
.DS_Store # macOS Thumbs.db # Windows
如何建立 .gitignore
?
- 在專案根目錄建立一個名為
.gitignore
的檔案:
touch .gitignore
- 在檔案中新增要忽略的規則:
# 排除資料庫檔案
db.sqlite3
# 排除虛擬環境
venv/
# 排除第三方依賴
node_modules/
# 排除日誌檔案
*.log
.gitignore
的規則範例
範例 | 描述 |
---|---|
*.log | 忽略所有 .log 結尾的檔案。 |
/debug.log | 僅忽略專案根目錄下的 debug.log 。 |
build/ | 忽略整個 build 目錄。 |
!important.log | 強制追蹤 important.log ,即使被排除。 |
*.tmp | 忽略所有 .tmp 檔案。 |
.env | 忽略環境變數檔案。 |
小結
.gitignore
是專案中不可或缺的工具,能幫助您有效管理檔案並保護儲存庫的整潔。通過排除不必要的檔案,您可以專注於管理專案的核心內容,避免敏感資訊洩漏。
建議在專案初期就設定 .gitignore
,並根據專案需求定期更新。希望本文能幫助您更好地理解和使用 .gitignore
!