首先,确保.gitignore忽略文件没有写错,不太懂.gitignore忽略文件怎么写的,请参考:
GitHub各种git忽略配置文件
https://www.gitignore.io/
其次,修改.gitignore(这里讲的是.gitignore是在创建项目时就创建过了,在原来的.gitignore进行修改或添加)后,不起作用的原因:
gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。
最后,原因知道了,解决办法:
进入项目目录,先把本地缓存删除,然后再提交。
git rm -r --cached . //删除所有文件缓存
git add . //本地添加
git commit -m '这里写提交日志' //本地提交
删除指定文件目录的缓存,比如说根目录下有log目录:
git rm --cached log/
注:
根目录是指以 .gitignore所在目录为根目录
补充一下 .gitignore 的匹配规则:
#以此开头的行为注释行
.a #过滤所有 .a 结尾的文件
/a/ #过滤根目录下的 a 文件夹下的所有文件
/a/do.c #过滤指定文件 /a/do.c
!lib.a #从过滤的文件中排除 lib.a
!/a/b #从过滤的文件中排除 根目录下a目录下的b文件
!.c #从过滤的文件中排除所有.c文件
/TODO #仅仅过滤项目根目录下的 TODO 文件,不包括subdir/TODO
build/ #过滤 build/目录下的所有文件
doc/*.txt #过滤doc下所有txt文件,但不包括子目录下的txt文件,如doc/server/arch.txt