天天看點

git忽略檔案及.gitignore不生效

在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
           
git