解决.gitignore对已经被git跟踪的文件不生效的问题

170 阅读1分钟

前言

在工作中偶尔会出现一些代码文件,在.gitignore中没有第一时间添加,导致大意的操作,添加进git里,但是又不想删除文件,再添加,这样比较麻烦。这个时候就需要把他移出git的跟踪,并添加到.gitignore文件中,忽略就会生效。

  • 接下来展示具体的图文操作细节。

1. 首先把一个测试项目添加到git中

  • 这个是idea帮我生成的.gitignore文件。
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr

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

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store

2. 添加一个.gitignore文件里没有的忽略的文件

  • 这里我添加了测试文件test,并把它加入到git中。

这个时候再往.gitignore添加test**,test文件也不会被忽略,因为已经被添加进了git中。

3. 把指定的文件移出git跟踪

git rm --cached <file>

<file>替换成你要移出的文件名称。

执行之后test文件会变回黄色,这个是被忽略的文件颜色(.gitignore的忽略已经生效)。

4. 清除全部缓存(不推荐)

  • 一次性移出所有被git跟踪的文件(一般不推荐这样使用)。
git rm -rf --cached .

注意:这里会把所有被git跟踪的文件移出跟踪,移出生效,这些文件就会都变回红色,不在git跟踪的文件里。


5. 总结

使用git rm --cached “file”移出指定被追踪的文件,git rm -rf --cached .移出所有被追踪的文件。根据具体的需求,使用合适的方法。