在倉庫目錄下新建一個名為.gitignore的文件(因?yàn)槭屈c(diǎn)開頭,沒有文件名,沒辦法直接在windows目錄下直接創(chuàng)建,必須通過右鍵Git Bash,按照linux的方式來新建.gitignore文件)。如下圖所示。
.gitignore文件對其所在的目錄及所在目錄的全部子目錄均有效。通過將.gitignore文件添加到倉庫,其他開發(fā)者更新該文件到本地倉庫,以共享同一套忽略規(guī)則。
以下涉及的ignore文件均為如下格式:
# 以'#'開始的行,被視為注釋. # 忽略掉所有文件名是 foo.txt的文件. foo.txt # 忽略所有生成的 html文件, *.html # foo.html是手工維護(hù)的,所以例外. !foo.html # 忽略所有.o和 .a文件. *.[oa]
配置語法:
以斜杠“/”開頭表示目錄;
以星號“*”通配多個字符;
以問號“?”通配單個字符
以方括號“[]”包含單個字符的匹配列表;
以嘆號“!”表示不忽略(跟蹤)匹配到的文件或目錄;
常用的規(guī)則:
1)/mtk/ 過濾整個文件夾
2)*.zip 過濾所有.zip文件
3)/mtk/do.c 過濾某個具體文件
被過濾掉的文件就不會出現(xiàn)在git倉庫中(gitlab或github)了,當(dāng)然本地庫中還有,只是push的時候不會上傳。
需要注意的是,gitignore還可以指定要將哪些文件添加到版本管理中:
1)!*.zip
2)!/mtk/one.txt
唯一的區(qū)別就是規(guī)則開頭多了一個感嘆號,Git會將滿足這類規(guī)則的文件添加到版本管理中。
為什么要有兩種規(guī)則呢?想象一個場景:假如我們只需要管理/mtk/目錄中的one.txt文件,這個目錄中的其他文件都不需要管理,那么我們就需要使用:
1)/mtk/
2)!/mtk/one.txt
假設(shè)我們只有過濾規(guī)則,而沒有添加規(guī)則,那么我們就需要把/mtk/目錄下除了one.txt以外的所有文件都寫出來!
最后需要強(qiáng)調(diào)的一點(diǎn)是,如果你不慎在創(chuàng)建.gitignore文件之前就push了項(xiàng)目,那么即使你在.gitignore文件中寫入新的過濾規(guī)則,這些規(guī)則也不會起作用,Git仍然會對所有文件進(jìn)行版本管理。
簡單來說,出現(xiàn)這種問題的原因就是Git已經(jīng)開始管理這些文件了,所以你無法再通過過濾規(guī)則過濾它們。因此一定要養(yǎng)成在項(xiàng)目開始就創(chuàng)建.gitignore文件的習(xí)慣,否則一旦push,處理起來會非常麻煩。
推薦教程:《Git教程》