1、首先在项目中 .git同目录中
Touch .gitignore文件
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
比如
那么为忽略 .err 文件的上传
2、配置生效
在.gitignore中已经标明忽略的文件,当gitpush的时候还会出现在push的目录中,原因是这些文件因为在git中有缓存,这时候我们就应该先把本地缓存删除,然后再进行git的push。git清除本地缓存命令如下:
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
如果还有忽略文件的上传那么需要检查以下原因
据我所知导致.gitignore里的忽略规则失效只有两种情况,当然我对Git的使用和理解比较浅薄,也只能想到这两个方面:一种是忽略规则的语法错误,这种情形好处理,只要修正错误的语法就可以了。PS:本文不对语法错误的问题详细说明,毕竟每个人情况不同。排查语法问题这事我也不知道怎么举例,总之只要符合官方规范的就可以了,需要注意的好像也就一个路径问题吧?!
另一种则是本文要重点说明的情况:项目中的文件或目录已经被纳入到Git的版本管理里面/跟踪文件清单,此时你再往.gitignore里添加此文件/目录的忽略规则就会发现毫无作用,因为已经被Git跟踪(track)的文件/目录无法被.gitignore忽略掉!。
这里再对上面一段所说的进行详细说明,所谓“已经被纳入到Git的版本管理里面/跟踪文件清单”,大体上指的是下面的三种情况:
1.已使用add命令开始跟踪项目文件或者将修改的文件放入暂存区/索引
2.已使用commit命令提交更新到本地仓库
3.已使用push命令将项目文件推送到了Git远程仓库了(例如GitHub)
上述的三种操作只要进行了其中一项,再添加对应文件的忽略规则都是不生效的!PS:这三个命令在GUI客户端上一般都可以找到对应的按钮和操作。
这里额外提下,如果按照反向理解,也就是说只要是文件/目录还没有被Git跟踪,那么你添加的忽略规则都是有效的,重点在于文件的是否属于被跟踪(track)状态。
git add .
git rm --cached .err
之后就不会上传忽略的文件了