git使用笔记(三)文件忽略

By francis_hao    Nov 19,2016

注:此条所有内容均来自$ git help gitignore,细节请参考之

 

有时候在仓库里有一些文件我们并不想提交,git提供了指定屏蔽文件的功能

可以在$GIT_DIR/info/exclude(和/或).gitignore文件中添加不想被追踪的文件,但如果文件之前已经被提交过,已经被git追踪了的话,再设置屏蔽文件就不会起作用了。

此功能实现的过程如下

  1. 从.gitignore文件中读取模式
  2. 从$GIT_DIR/info/exclude中读取模式
  3. 从配置变量core.excludesfile指定的文件中读取模式

这三个文件分别对应不同的应用场景:

"1" 本身也可以提交到版本库中由git控制版本,并可以在别人clone的仓库中生效。

"2"是用于比较私人的仅仅对于本仓库生效。

"3"也是用于私人的但是会对所有的仓库生效

模式匹配的格式:

  • 空行不起作用,因此在方便阅读的目的下可任意使用
  • #作为注释
  • !可以将之前的规则否决掉,这个在最后面的有效性越高
  • 以/结尾的模式仅仅匹配目录,不会对文件有影响,例如"foo/"仅匹配目录foo(不管它在几层目录下),而不会匹配文件foo
  • 没有/的情况,如果是.gitignore里的规则,则以.gitignore所在路径作为根路径,其他文件里的规则则以$GIT_DIR所在路径作为根路径的整个文件路径名内容作为匹配内容,例如规则为dir,则它会匹配dir/hello,dir/haha,info/jack/dir等
  • 模式"*"号默认不会匹配/,例如a/*.c会匹配a/a.c但是不会匹配 a/b/a.c。
  • 行首的/表示gitignore所涉及的路径,例如"/*.c"会匹配"cat_file.c"但不会匹配"Mozilla_sha1/sha1.c"

NOTE:

 


本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6081448.html

 

参考

[1] git help gitignore

 

原文地址:https://www.cnblogs.com/yinghao-liu/p/6081448.html