在使用.ignore插件时,怎样使添加到.gitignore中的忽略文件夹(如.idea),或者文件(如config.properties.bak)生效

前言

Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

在我们用idea或者eclipse,亦或者vscode等编译器IDE,进行开发是,总会产生一些,编译后的文件,或者不想提交到代码仓库的文件。在我们提交代码的时候,明明添加了忽略文件,或者文件夹到.gitignore文件中,但是总是不生效,一提交,总有一大堆不需要的文件,一起到代码仓库,让人头疼。

解决方案

问题描述

拿idea下的java工程做例子,平时idea的默认.gitignore文件

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
*.class
target


### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/

/bin
*.log
.svn
.DS_Store
/.buildpath
/.project
/.classpath
/.settings
/target
/logs
/.idea
__MACOSX
/log
.mvn

但是在提交代码时,出现一下恶心的文件

在使用.ignore插件时,怎样使添加到.gitignore中的忽略文件夹(如.idea),或者文件(如config.properties.bak)生效_第1张图片

明明添加了.idea 与target的忽略,还存在……

单个删除

在使用.ignore插件时,怎样使添加到.gitignore中的忽略文件夹(如.idea),或者文件(如config.properties.bak)生效_第2张图片

# 进入需要忽略的文件路径
cd /Users/zh/project/git/java/jeecg-boot-module-system/src/main/resources/config.properties.bak
# 执行本地缓存删除
git rm --cached config.properties.bak
#或者
# 执行本地缓存删除
git rm --cached /Users/zh/project/git/java/jeecg-boot-module-system/src/main/resources/config.properties.bak

级联模糊删除文件

级联删除编译过后的.class

git rm --cached *.class -r

在使用.ignore插件时,怎样使添加到.gitignore中的忽略文件夹(如.idea),或者文件(如config.properties.bak)生效_第3张图片

级联强制删除文件夹

git rm --cached .idea -rf

在使用.ignore插件时,怎样使添加到.gitignore中的忽略文件夹(如.idea),或者文件(如config.properties.bak)生效_第4张图片

-r是删除文件夹及其子目录(级联)
-f 时强制
--cached是删除暂存区里的文件而不删除工作区里的文件

总结

idea或者eclipse,亦或者vscode等编译器IDE,集成git过滤一些不必要提交到git上的文件,以及文件夹的时候,发现使用.ignore插件,创建.gitignore来忽略提交文件并没有生效,每次commit还是带了一堆不必提交的文件,是因为.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

以上解决方案,就是先把本地缓存删除(改变成未被追踪状态),然后再提交,这样就不会出现忽略的文件了。

你可能感兴趣的:(解决方案,git,IntelliJ,idea使用.ignore插件,使gitignore生效,idea集成git过滤文件,git删除本地缓存,git加入忽略规则)