.gitignore使用无效的解决方法
- 如果在创建.gitignore文件之前就已经push了项目,Git仍然会对所有文件进行版本管理;
- 或push后,在.gitignore文件中更新过滤规则,新规则也不会起作用。
原因:新建的文件在git中会有缓存,当Git已经开始管理这些文件后,新建.gitignore文件或更新忽略规则就不生效、不起作用了。
解决方法:先清除本地缓存,然后再进行git push。git清除本地缓存命令如下:
git rm -r --cached .
git add .
git commit -m "update .gitignore"
git push -u origin master
因此,一定要养成在项目开始就创建.gitignore文件的习惯;如果需要更新忽略规则,在更新后执行上述命令使其生效。
常用的规则
以斜杠/开头表示目录;
以星号*通配多个字符;
以问号?通配单个字符
以方括号[]包含单个字符的匹配列表;
以叹号!表示不忽略(跟踪)匹配到的文件或目录;
【注意】git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
示例说明
a、规则:dir/*
说明:忽略相对目录 dir 下的全部内容;不管是根目录下的 /dir/ 目录,还是某个子目录 /sudDir/dir/ 目录,都会被忽略;
b、规则:/dir/*
说明:只忽略根目录下的 /dir/ 目录的全部内容;
c、规则:
/*
!.gitignore
说明:忽略全部内容,但不忽略 .gitignore 文件。