.gitignore使用無效的解決方法
- 如果在創(chuàng)建.gitignore文件之前就已經push了項目,Git仍然會對所有文件進行版本管理;
- 或push后,在.gitignore文件中更新過濾規(guī)則,新規(guī)則也不會起作用。
原因:新建的文件在git中會有緩存,當Git已經開始管理這些文件后,新建.gitignore文件或更新忽略規(guī)則就不生效、不起作用了。
解決方法:先清除本地緩存,然后再進行git push。git清除本地緩存命令如下:
git rm -r --cached .
git add .
git commit -m "update .gitignore"
git push -u origin master
因此,一定要養(yǎng)成在項目開始就創(chuàng)建.gitignore文件的習慣;如果需要更新忽略規(guī)則,在更新后執(zhí)行上述命令使其生效。
常用的規(guī)則
以斜杠/開頭表示目錄;
以星號*通配多個字符;
以問號?通配單個字符
以方括號[]包含單個字符的匹配列表;
以嘆號!表示不忽略(跟蹤)匹配到的文件或目錄;
【注意】git 對于 .ignore 配置文件是按行從上到下進行規(guī)則匹配的,意味著如果前面的規(guī)則匹配的范圍更大,則后面的規(guī)則將不會生效;
示例說明
a、規(guī)則:dir/*
說明:忽略相對目錄 dir 下的全部內容;不管是根目錄下的 /dir/ 目錄,還是某個子目錄 /sudDir/dir/ 目錄,都會被忽略;
b、規(guī)則:/dir/*
說明:只忽略根目錄下的 /dir/ 目錄的全部內容;
c、規(guī)則:
/*
!.gitignore
說明:忽略全部內容,但不忽略 .gitignore 文件。