原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法:

1.先把规则写好,然后把规则对应的文件删了,然后再提交,然后再把删的文件放回来,这样本地就不会再提交这个文件,然后服务上被忽略的文件还需要手动再上传一次。

2.就是先把本地缓存删除(改变成未track状态),然后再提交(文件忽略了,在你本机不会再上传,同时服务器上相关的文件也会被删除,需要你用其他方法再上传一次,然后服务器上就也忽略了):

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

那好,如何正确使用.gitignore呢?这也是一门大学问。是不是项目做到一半,然后再添加.gitignore呢?不是的,最好的是你项目刚创建,项目还没有进行git版本控制的时候,首先在项目目录下加入.gitignore文件,即首先对.gitignore进行版本控制,然后在对项目进行版本控制。但是如果你是后来才加入.gitignore呢?就可能会出现如下问题:

git .gitignore不生效-LMLPHP

或者.DS_Store等文件不断的提醒我又被修改了。。。只是因为这些文件先于.gitignore进行版本控制了。此时你可以使用如下命令来让.gitignore忽视它:

git rm --cached -r 文件名

那么下次git就会忽视这些文件了。

05-27 00:44