"並非全部的牛奶都叫特侖蘇",在版本控制系統中也有類似的表達,那就是"並非全部的文件都須要提交".git
有的是由於不必提交,好比日誌文件,系統緩存文件等,有的是由於不能提交,好比我的隱私文件,付費文檔等.github
正常來講,這些文件都是不該該被提交到版本庫,假若一不留神提交到版本庫,要麼泄露機密信息,要是形成經濟損失,要麼對團隊其餘人工做形成不便.緩存
有鑑於此,咱們應該尋求一種機制來規避事故的發生,在 git
版本控制系統中通常有三種不一樣的解決方案.ide
最經常使用也是最簡單的當屬 .gitignore
文件,不過先不要着急,咱們先了解一下忽略原則和配置規則.工具
目標: 只提交必要文件,忽略無用文件,儘量考慮多種狀況,不給他人制造麻煩.
一行記錄表明一條規則,配置規則僅針對還沒有被跟蹤的文件清單.操作系統
# 忽略 `*.a` 文件 *.a # 忽略 `*.A` 文件,但 `somefile.A` 除外. *.A !somefile.A # 忽略 `*.b` 和 `*.B` 文件 *.[bB] # 忽略 `*.c` 和 `*.C` 文件,但 `somefile.C` 除外. *.[cC] !somefile.C # 只忽略 `somepath/` 目錄(包括該目錄下全部文件),但不忽略 `somepath` 文件 somepath/ # 只忽略 `somepath/` 一級子目錄下 `*.txt`,但不忽略 `somepath/sub/*.txt` 文件 somepath/*.txt # 忽略 `somepath` 文件和 `somepath` 目錄 somepath # 只忽略 `somepath` 文件,但不忽略 `somepath/` 目錄 somepath !somepath/ # 只忽略當前目錄下的 `somepath` 文件和目錄,但不忽略子目錄的 `somepath` /somepath
說明:#
開頭表示註釋,!
緊跟某規則以後表示增長例外狀況
提供兩個不錯的在線示例,能夠參考下在什麼場景應該忽略哪些文件以及如何編寫忽略規則.版本控制
運行
git help ignore
命令查看幫助文檔
git
設置忽略文件有三種方式,以下:日誌
~/.gitignore
),執行 git config --global core.excludesfile ~/.gitignore
命令後適用於全部的版本庫.$PWD/.gitignore
),編輯 .gitignore
文件後適用於遠程和本地版本庫.$PWD/.git/info/exlude
),編輯 $PWD/.git/info/exlude
文件後適用於本地版本庫.三種設置方式中,第二種最爲常見,另外兩種大體同樣,重點在於配置文件如何編寫.code
.gitignore
文件參考在線示例以及基本語法編寫自定義忽略規則文檔
# General .DS_Store .AppleDouble .LSOverride # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db
.gitignore
文件忽略文件規則配置完畢後,須要將該文件提交到版本庫,這樣在其餘電腦上也能應用相同的忽略規則.
# 添加 `.gitignore` git add .gitignore # 提交 `.gitignore` git commit -m "add .gitignore" # 上傳 `.gitignore` git push origin master
新建 .gitignore
文件中已忽略的文件,運行 git status
命令,若是提示 working directory clean
,那麼說明忽略文件的配置已經生效,若是工做區不乾淨,很遺憾,忽略文件配置可能並未生效,須要檢查下哪裏配置錯了.
運行 git check-ignore
命令檢查是哪一個配置規則寫錯了,從而咱們可以更正相應的配置規則.