每个Git项目一般都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本库中。
语法:
- 以斜杠“/”开头表示目录;
- 以星号“*”通配多个字符;
- 以问号“?”通配单个字符
- 以方括号“[]”包含单个字符的匹配列表;
- 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
示例:
- node_modules/* 忽略目录 node_modules下的全部内容;注意,不管是根目录下的 node_modules目录,还是某个子目录node_modules目录,都会被忽略;
- /node_modules/* 忽略根目录下的 node_modules目录的全部内容;
- test/*.css 忽略test目录下所有css文件
- !lib.a 不忽略lib.a
- *.[oa] 忽略所有.o和 .a文件.
问题:
有时候在项目开发过程中,中途想把某些目录或文件加入忽略规则发现未生效,原因是.gitignore只能忽略那些原来没有被提交的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除,然后再提交:
git rm -r --cached .
git add -A
git commit -m 'gitignore'