git添加 .ignore 忽略

693 查看

语法

下面几个例子初学时容易引起歧义
demo 忽略所有demo文件
demo* 忽略以所有demo开头的文件
demo/ 忽略所有的demo目录以及目录下的文件
/demo/ 忽略根目录的下的demo目录以及目录下的文件
demo/*.log 忽略所有demo目录下的以log结尾的文件
!demo.log 不忽略所有的demo.log文件

tips

  • 最下面的规则优先级更高

  • .gitignore文件也可以被加入忽略

  • gitignore 的匹配规则使用的是 glob模式

使用

当目标文件未加入版本库时
先在项目根目录创建.gitignore文件
再将你希望忽略的文件加入进去,提交.gitignore文件(文件的加入和ignore文件的创建不分先后顺序)

如果已经加入了版本库的文件要怎么办? git忽略已经被提交的文件 我的解决方案来自于这个答案

$ git rm --cached demo* #如果有多个文件可以使用通配符。。你该不会傻的一个个去删除吧
$ echo 'demo*' >> .gitignore  #将新的规则导入ignore文件
$ git ci -m 'new rules' #提交修改
$ git st #再次查看时 已经没有那些文件了,之后再修改已经忽略的文件都不会有问题

案例

https://github.com/github/gitignore
这是github上面整理出来的各种项目的范例ignore文件,有兴趣的朋友可以看看