本文环境:
IDE:IntelliJ IDEA
jdk8
maven工程
gitlab代码仓库
现象:
明明在工程目录下已创建.gitignore文件,且已添加如.idea,target之类的路径排除,但每次提交时总提示target/下的文件有变更,如下:
.gitignore:
commit窗口提示:
原因分析:
.gitignore按照它的用途来说,肯定是生效的,但为什么会出现这种情况呢?
原来它只是对从来没有追踪过的文件生效,如果是项目后期加的,也就是说要排除的文件已经被纳入到版本管理中了,那这个时候直接添加是不会起作用的,如果要生效,还需要做些额外的处理
解决途径:
进入项目目录,执行如下命令:
1、git ls-files
查看暂存区的全部文件,也就是git追踪的文件列表
2、git rm -r --cached xxx
xxx表示要从暂存区删除的文件,如git rm -r --cached target/* .idea/*,执行后,对应的文件将处于未跟踪状态,.表示删除所有文件
3、git ls-files -o
查看未追踪的文件,进一步可以验证在上一步操作后是否已生效
(此时,可再次刷新commit窗口查看文件变化)
4、git status
查看目前状态,可以看到在第二步中相关的文件为deleted
5、git commit -m .
将本次变更提交至本地仓库
6、git push origin master
将本次变更提交至远程仓库
最后,得以解决,再次修改,将不再显示不再追踪的目录及文件了
版权归原作者 Jack_abu 所有, 如有侵权,请联系我们删除。