IDEA添加.gitignore忽略不需要提交的文件

问题
git上传的时候,我们已经将 xxx 文件添加到了.gitignore 中,但是在push 后,远程仓库还是会显示此文件,比如我们在.gitignore文件当中添加了不需要提交的target目录,但是提交的时候,还是会被提交。

原因
xxx 文件在前面已经被 git 跟踪,在这之后再添加到 .gitignore 中是无效的。

比如如下:
我们在编写玩某些业务代码之后,对代码进行提交,发现target目录也出现在提交的目录当中:
在这里插入图片描述
这个时候,我们将target目录添加到.gitignore文件当中,如下:
在这里插入图片描述
也将.gitignore文件添加到git管理当中
在这里插入图片描述
这个时候,我们在对代码进行提交,发现target目录还是会在提交目录当中,我们明明给target目录添加到忽略文件当中,那么为什么还是会存在呢?

原因分析:
.gitignore按照它的用途来说,肯定是生效的,但为什么会出现这种情况呢?

原来它只是对从来没有追踪过的文件生效,如果是项目后期加的,也就是说要排除的文件已经被纳入到版本管理中了,
那这个时候直接添加是不会起作用的,如果要生效,还需要做些额外的处理,也就是说我们在.gitignore文件当中添加要忽略提交的
target目录的时候,target目录其实已经被git纳入到版本管理中了。

在这里插入图片描述

解决途径:

进入项目目录,执行如下命令:

git ls-files

查看暂存区的全部文件,也就是git追踪的文件列表
在这里插入图片描述

git rm -r --cached xxx

xxx表示要从暂存区删除的文件,如git rm -r --cached target/* .idea/*,执行后,对应的文件将处于未跟踪状态,.表示删除所有文件,

注意:在执行命令的之前,有一个非常重要的操作就是,必须保证将本地所有的代码已经提交到git上了,也就是说没有修改任何的代码文件的前提下,才能执行命令。否则执行报错
这里我们最好重新打开一个终端,再执行命令,再一个就是最好明确删除哪一个目录下的文件,我这里删除的是demo01目录下的所有文件,我们最好明确指定要删除target目录
比如:

git rm -r --cached ./xxx/target/*

在这里插入图片描述
如果删除某个文件 报以下错误,那么我们就使用强制删除命令

git rm -f --cached  某个文件

在这里插入图片描述

查看未追踪的文件,进一步可以验证在上一步操作后是否已生效
(此时,可再次刷新commit窗口查看文件变化)
在这里插入图片描述
在这里插入图片描述

再次提交就会发现没有了target目录了,因为我们在.gitignore文件当中添加了忽略提交,注意不要再一次将target目录add添加到git的管理范围当中了。
在这里插入图片描述

另外,我这里还有.idea目录下的文件并没有排除在git的管理之外,为什么提交的时候,没有出现在提交列表之内呢?
因为我们IDEA当中进行了.idea目录忽略,这里配置的忽略目录或者文件将在git提交的时候全部忽略提交,
在这里插入图片描述
但是并不建议在此次配置所有要忽略提交的目录或者文件,因为这里配置的忽略目录和文件,在IDEA的工作目录界面,也不会显示出来,如果我们在此次也配置了target目录,那么我们在IDEA工作目录界面看不到每次工程是否成功进行了编译出来了target目录,所以我只配置了忽略.idea目录
在这里插入图片描述

还有一种可以情况就是,当我们刚刚创建项目,没有任何的代码提交的时候,这个时候我们就在.gitignore文件当中添加了忽略提交目录也是可以的,因为没有任何的代码文件是被git管理到的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个时候,提交的时候,就会忽略指定的目录了
在这里插入图片描述

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值