据我所知导致.gitignore里的忽略规则失效只有两种情况,当然我对Git的使用和理解比较浅薄,也只能想到这两个方面:一种是忽略规则的语法错误,这种情形好处理,只要修正错误的语法就可以了。PS:本文不对语法错误的问题详细说明,毕竟每个人情况不同。排查语法问题这事我也不知道怎么举例,总之只要符合官方规范的就可以了,需要注意的好像也就一个路径问题吧?!
另一种则是本文要重点说明的情况:项目中的文件或目录已经被纳入到Git的版本管理里面/跟踪文件清单,此时你再往.gitignore里添加此文件/目录的忽略规则就会发现毫无作用,因为已经被Git跟踪(track)的文件/目录无法被.gitignore忽略掉!。
这里再对上面一段所说的进行详细说明,所谓“已经被纳入到Git的版本管理里面/跟踪文件清单”,大体上指的是下面的三种情况:
已使用add命令开始跟踪项目文件或者将修改的文件放入暂存区/索引
已使用commit命令提交更新到本地仓库
已使用push命令将项目文件推送到了Git远程仓库了(例如GitHub)
上述的三种操作只要进行了其中一项,再添加对应文件的忽略规则都是不生效的!PS:这三个命令在GUI客户端上一般都可以找到对应的按钮和操作。
这里额外提下,如果按照反向理解,也就是说只要是文件/目录还没有被Git跟踪,那么你添加的忽略规则都是有效的,重点在于文件的是否属于被跟踪(track)状态。
已提交解决方案:
![](https://img.haomeiwen.com/i1480521/585cf1754cb6de85.png)
网友评论