git不能过滤.gitignore中指定的文件
一、分析
在平时开发的时候,有些编译过后的文件我们是不需要上传到git远程仓库上面的,需要将这些文件过滤掉。但是我们都知道在根目录下添加一个 .gitignore
文件,并指定过滤的文件即可。但是在第一次创建文件的时候,我们可能忘记添加这个文件了,结构也罢代码提交了。后面再添加 .gitignore
文件,并且里面也写上自己想要过滤的文件,结果发现有些文件过滤不了,为什么呢?烦恼!!!烦恼!!!
.gitignore
文件只能过滤没有添加到git
版本管理仓库时有效,意思是我们想要过滤的这些文件必须是没有添加到git
缓存区过的文件才会有效。当代码都提交过了,在添加 .gitignore
过滤文件,那么提交过的那些文件就不能过滤了。那么怎么办呢?
一般 .gitignore
文件内容如下
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
*.nar
*.ear
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# maven ignore
target/
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.class
*.project
*.factorypath
# eclipse ignore
.settings/
.classpath
target/
bin/
NewCustServSer/
SrenewSer/
sms-drugstore/
# idea ignore
.idea/
*.ipr
*.iml
*.iws
# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db
# else
.springBeans
二、解决方案
如果有些文件想要过滤掉,但是有已经提交过了。那么我们可以将这个不想提交的文件删除,然后在将代码提交一次,之后再生成这些文件就不会再提交了。