第一种方法
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,
这时候我们就应该先清除本地缓存删除,然后再进行git的提交。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push -u origin master
第二种方法
在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
git update-index --assume-unchanged PATH //在PATH处输入要忽略的文件
在使用.gitignore文件后如何删除远程仓库中以前上传的此类文件而保留本地文件?
在使用git和github的时候,之前没有写.gitignore文件,就上传了一些没有必要的文件,在添加了.gitignore文件后,就想删除远程仓库中的文件却想保存本地的文件。这时候不可以直接使用"git rm directory",这样会删除本地仓库的文件。可以使用"git rm -r –cached directory"来删除缓冲,然后进行"commit"和"push",这样会发现远程仓库中的不必要文件就被删除了,以后可以直接使用"git add -A"来添加修改的内容,上传的文件就会受到.gitignore文件的内容约束。
忽略文件
a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项⽬根⽬录下的 TODO ⽂件,不包括 subdir/TODO
/TODO
# 忽略 build/ ⽬录下的所有⽂件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 会忽略掉 doc/ ⾥⾯所有的txt⽂件,包括⼦⽬录下的(**/ 从 Git 1.8.2 之后开始⽀持 **/ 匹配模式,表⽰递归匹配⼦⽬录下的⽂件)
doc/**/*.txt
local.properties #过滤具体⽂件
!local.properties#添加具体⽂件
*.[oa]#忽略所有以 .o 或 .a 结尾的⽂件