有些比較機密的檔案不想放在 Git 裡面一起備份,例如資料庫的存取密碼或是 AWS 伺服器的存取金鑰,或有時候一些程式編譯的中間檔或暫存檔,每編譯一次就等於產生一次新的檔案,對專案來說通常沒有實質的利用價值的檔案,像這樣的檔案不想讓它進到 Git 裡。
要做到這件事,只要在專案目錄裡放一個 .gitignore 檔案,並且設定想要忽略的規則就行了。
建立 .gitignore
檔案
touch .gitignore
撰寫檔案
要忽略的檔案
假設不想讓node_module
檔案進入git,直接想上名字就可。
node_module
忽略 config 目錄下的某個檔案
config/datafile
忽略所有 db 目錄下附檔名是 .sqlite3 的檔案
/db/*.sqlite3
忽略所有附檔名是 .tmp 的檔案
*.tmp
要忽略自己也可以,只是通常不會這麼做
.gitignore
只要 .gitignore 這個檔案存在,即使這個沒被 Commit 或是沒被 Push 上 Git Server 一樣會有效果。但這個檔案會建議 Commit 進專案並且推上 Git Server,這樣一來整個專案一起開發的人可以共享相同的設定。
常見的各種忽略:
不同程式檔案常見的各種忽略
https://github.com/github/gitignore
特別注意:
若檔案在.gitignore
存在前已經存在,不會被忽略到。
.gitignore
檔案設定的規則,只對在規則設定之後的有效,那些已經存在的檔案就像既得利益者一樣,這些規則是對他們沒有效果的。
如果想套用 .gitignore
的規則,就必須先使用 git rm --cached
指令把這些既得利益者請出 Git,移出 Git 控管之後,它就會開始會被忽略了。
如果想要一次清除那些已經被忽略的檔案,可以使用 git clean
指令並配合 -X
參數:
$ git clean -fX
那個額外加上的 -f 參數是指強制刪除的意思,這樣一來就可清除那些被忽略的檔案。