在倉庫目錄下新建一個名爲.gitignore的文件(由於是點開頭,沒有文件名,沒辦法直接在windows目錄下直接建立,必須經過右鍵Git Bash,按照linux的方式來新建.gitignore文件)。以下圖所示。html
.gitignore文件對其所在的目錄及所在目錄的所有子目錄均有效。經過將.gitignore文件添加到倉庫,其餘開發者更新該文件到本地倉庫,以共享同一套忽略規則。linux
如下涉及的ignore文件均爲以下格式:git
# 以'#'開始的行,被視爲註釋. # 忽略掉全部文件名是 foo.txt的文件. foo.txt # 忽略全部生成的 html文件, *.html # foo.html是手工維護的,因此例外. !foo.html # 忽略全部.o和 .a文件. *.[oa]
配置語法:
以斜槓「/」開頭表示目錄;
以星號「*」通配多個字符;
以問號「?」通配單個字符
以方括號「[]」包含單個字符的匹配列表;
以歎號「!」表示不忽略(跟蹤)匹配到的文件或目錄;
經常使用的規則:
1)/mtk/ 過濾整個文件夾
2)*.zip 過濾全部.zip文件
3)/mtk/do.c 過濾某個具體文件github
被過濾掉的文件就不會出如今git倉庫中(gitlab或github)了,固然本地庫中還有,只是push的時候不會上傳。
須要注意的是,gitignore還能夠指定要將哪些文件添加到版本管理中:
1)!*.zip
2)!/mtk/one.txtwindows
惟一的區別就是規則開頭多了一個感嘆號,Git會將知足這類規則的文件添加到版本管理中。
爲何要有兩種規則呢?想象一個場景:假如咱們只須要管理/mtk/目錄中的one.txt文件,這個目錄中的其餘文件都不須要管理,那麼咱們就須要使用:
1)/mtk/
2)!/mtk/one.txt
假設咱們只有過濾規則,而沒有添加規則,那麼咱們就須要把/mtk/目錄下除了one.txt之外的全部文件都寫出來!gitlab
最後須要強調的一點是,若是你不慎在建立.gitignore文件以前就push了項目,那麼即便你在.gitignore文件中寫入新的過濾規則,這些規則也不會起做用,Git仍然會對全部文件進行版本管理。
簡單來講,出現這種問題的緣由就是Git已經開始管理這些文件了,因此你沒法再經過過濾規則過濾它們。所以必定要養成在項目開始就建立.gitignore文件的習慣,不然一旦push,處理起來會很是麻煩。spa