利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。
现象:
在.gitignore添加file1文件,以过滤该文件,但是通过git status查看仍显示file1文件的状态。
原因:
在git库中已存在了这个文件,之前push提交过该文件。
.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
解决:
需要在git库中删除该文件,并更新。
然后再次git status查看状态,file1文件不再显示状态。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
附加:
.gitignore规则,每一行保存了一个匹配的规则例如:
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt