在工程根目錄下建立.gitignore文件,將要排除的文件或文件夾寫到.gitignore這個文件中。這種方式會讓這個工程的所有修改者在克隆代碼的同時,也能克隆到過濾規則,而不用自己再寫一份,這就能保證所有修改者應用的都是同一份規則,而不是張三自己有一套過濾規則,李四又使用另一套過濾規則,個人比較喜歡這個方式。.gitignore文件的規則如下:
規則說明:
一、配置語法:
- (#) 表示註釋
(*)表示通配多個字符;
*.html(忽略所有生成的 html文件)
- (?)通配單個字符;
([abc]) 代表可選字符範圍
*.py[cod](忽略所有.pyc,.pyo和 .pyd的文件)
- (!)表示不忽略(跟蹤)匹配到的文件或目錄;
以斜槓“/”結尾表示目錄:
TODO:忽略工程中所有名爲TODO文件和名爲TODO目錄 TODO/:只忽略工程中名爲TODO目錄,不忽略名爲TODO文件 TODO , !TODO/ :只忽略工程中名爲TODO文件,不忽略名爲TODO文件夾
二、注意事項:
如果名稱最前面是路徑分隔符(/) (如:/TODO),表示僅僅忽略項目根目錄下的文件和文件夾/TODO,不包括子文件夾 subdir/TODO
如果名稱最前面無路徑分隔符 (/)(如:TODO),表示忽略項目所有目錄下的文件和文件夾/TODO,也就是包括subdir/TODO
如:
TODO:忽略工程中所有名爲TODO文件和名爲TODO文件夾
TODO/=TODO/*:只忽略工程中所有名爲TODO文件夾,但不忽略名爲TODO文件(注意,不管是根目錄下的 /TODO/ 文件夾,還是某個子目錄下的文件夾 subdir/TODO,都會被忽略;)
/TODO/=/TODO/*:只忽略項目根目錄下的 /TODO/文件夾,不包括子文件夾和名爲TODO的文件
*.a , !lib.a :忽略所有 .a 結尾的文件,但 lib.a 除外
build/ :忽略 build/ 目錄下的所有文件
doc/*.a:會忽略 doc/notes.a, 但不包括 doc/server/arch.a