在git中忽略檔案或檔案夾使其不送出到版本庫中,需要修改根目錄的.gitignore檔案(如果沒有則需要自己建立)。檔案中每一行都是一條比對規則
示例:
# 表示此為注釋,将被Git忽略
*.a 表示忽略所有 .a 結尾的檔案
!lib.a 表示但lib.a除外
/TODO 表示僅僅忽略項目根目錄下的 TODO 檔案,不包括 subdir/TODO
build/ 表示忽略 build/目錄下的所有檔案,過濾整個build檔案夾;
doc/*.txt 表示會忽略doc/notes.txt但不包括 doc/server/arch.txt
bin/: 表示忽略目前路徑下的bin檔案夾,該檔案夾下的所有内容都會被忽略,不忽略 bin 檔案
/bin: 表示忽略根目錄下的bin檔案
/*.c: 表示忽略cat.c,不忽略 build/cat.c
debug/*.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
**/foo: 表示忽略/foo,a/foo,a/b/foo等
a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等
!/bin/run.sh 表示不忽略bin目錄下的run.sh檔案
*.log: 表示忽略所有 .log 檔案
config.php: 表示忽略目前路徑的 config.php 檔案
/mtk/ 表示過濾整個檔案夾
*.zip 表示過濾所有.zip檔案
/mtk/do.c 表示過濾某個具體檔案
但是有時候把忽略規則加入
.gitignore
檔案中卻并沒有生效。這是因為
.gitignore
隻能忽略未被跟蹤的檔案,如果檔案已經在版本管理中直接修改
.gitignore
是沒有效果的,需要先把本地緩存删除然後在送出:
git rm -r --cached . #清除緩存
git add .
git commit -m"更新 .gitignore"
git push