git在.gitignore添加忽略文件不起作用

2020/8/2 git

# 问题描述

使用git在.gitignore添加忽略文件不起作用,在此commit还是会提交,而且在IDEA中已经添加了的文件或者目录没有变灰,即没有忽略成功。

# 原因

.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了。说明在git库中已存在了这个文件,之前push提交过该文件。即文件已经被track(追踪)。

# 解决办法

# 方式一

将需要忽略的文件先复制出来,然后删除项目目录下的这些需要忽略的文件。(如果是编译后的文件,直接删除就可以)。

在.gitignore文件中添加对应的需要忽略的文件或者目录。

提交所做的修改到本地版本库,然后推送到远程的版本库。

如果文件变为灰色,说明成功

不过这样并不是很稳妥,而且文件多的话,比较麻烦。

# 方式二

思路:删除本地缓存,重新提交。

  1. 使用命令工具Git Bash,进入需要修改的工作目录
  2. 重置所有缓存(注意后面有个.)
git rm -r --cached .
1
  1. 将本地代码重新添加(注意后面有个.)
git add .
1
  1. 提交(让 .gitignore 文件夹生效,读取忽略文件)
git commit -m ".gitignore is now working"
1

此时,发现刚才忽略不掉的文件,已经变灰,说明忽略成功。

注意: 注意步骤2也可不删除全部缓存,只删除指定的缓存,例如:

git rm -r --cached */target/
1