【Git】設定 .gitignore 忽略清單

開發過程中,有些檔案不想也不應該放在 git 裡面一起備份,例如:密碼、大型的預訓練模型或者一些編譯過程所產生的的暫存檔…等。

這時可以設定忽略的規則來過濾上傳的文件。

新增過濾腳本

如果有不想放進去的檔案,只需要可以在專案中的 .gitignore 設置忽略規則即可。

檔案不存在?那就新增它吧!

1
$ touch .gitignore

內容寫法

有了檔案就可以開始編輯內容了:

1
$ vim .gitignore

如果你是全新專案或者剛開始編輯 .gitignore,可以考慮直接用 github 的模板,至少一些基本的都可以過濾掉,之後再加上你自己的客製化就好。

例如,我會進一步過濾掉下列文件與資料夾:

1
2
3
4
5
6
7
8
9
10
11
12
13
# ide
.idea/
*.iml

# tmp data
*.swp
*~
temporary/

# data
dataset/
output/
models/


基本上語法跟 Regular Expression 相似,不清楚的可以查查這篇網誌,這篇網誌可是我 Regular Expression 的入門呢,至於我自己的筆記?還躺在草稿夾呢 :joy:

  • # : 表註解
  • / 結尾:表目錄
  • * : 表示匹配 0 或多個字元
  • ? : 表示匹配 0 或 1 個字元
  • [] : 表示匹配中括弧內的任一個字元
  • ! : 則是用來表示追蹤特定文件,有可能在前面規則中過濾掉了某個資料夾,但該資料夾下某個文件卻是要追蹤的,就可以用 !

過濾已追蹤的檔案

.gitignore 的過濾效果只會在 Untracked 的檔案上顯示效果,若你這檔案已經列入版本控制,也就是之前被 commit 過了,則不受 .gitignore 檔案控制。

如果想讓這已經列管的檔案被忽略,可以先解除版制的追踪

1
$ git rm -r --cached .

然後再 commit 忽略掉這檔案。

相關文章
忽然發現我之前寫過 【Git】取消追蹤檔案

參考資料

  1. Fleschier (2018-10-30)。gitignore的使用及写法 。檢自 Fleschier 渐寒๑ (2020-07-21)。
  2. 高見龍。【狀況題】有些檔案我不想放在 Git 裡面… 。檢自 為你自己學 Git (2020-07-21)。
  3. github。A collection of useful .gitignore templates 。檢自 gitignore (2020-07-21)。

更新紀錄

最後更新日期:2020-09-06
  • 2020-09-06 發布
  • 2020-08-24 完稿
  • 2020-07-21 起稿