.gitignore中增加过滤规则不起作用的解决方法

在使用git的时候,项目目录下的.gitignore文件的作用是告诉git哪些文件不需要添加到版本管理中,比如Java项目中的iml/.project这样的IDE相关的文件及build/target目录下面编译生成的文件。
规则其实很简单:

# 过滤掉一些文件或文件夹,那么被过滤的内容就不会被git管理,比如:
build/:				过滤整个build文件夹;
*.class:			过滤所有.class后缀的文件;
path/to/local.properties:	过滤具体文件
# .gitignore还可以指定哪些文件添加到版本管理中,添加规则:
!build/ :			添加整个文件夹;
!*.class:			添加所有.class后缀的文件;
!path/to/local.properties:	添加具体文件

但有时会出现.gitignore中增加了过滤规则但是不起作用的情况。多半是由于在创建.gitignore文件或添加一些过滤规则之前就track了相应的内容,那么即使在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对这些文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。
这个时候解决方法就是先把本地这些文件变成未track状态,具体来说就是在缓存里删除它们,然后提交:

git rm -r --cached <path>
git add .
git commit -m 'update .gitignore'
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值