在正常的工作中,经常使用到git,那自然.gitignore文件的使用是必须要掌握的。所幸我们一般用到的的.gitignore的规则都比较简单,而且其语法是使用的通配符语法,容易掌握,这里将它的语法进行一下归纳整理,便于之后查阅。
这里的内容主要参考的是git的官方文档
- 空行被程序无视,所以可以用来组织文件使之便于阅读。
#
开头的行被视作注释。- 每一行之后的空格被忽略,除非使用
\
将其包裹。 !
前缀表示反向选择,即之前被排除的文件或文件夹,如果符合!
之后的模式,将会被重新包括在内,但是:- 如果
!
希望重新包含的文件或文件夹,其父文件夹被排除,则无法重新包括在内。 - 如果想要匹配的是字符
!
,则需要前面使用反斜杠转义\!
。
- 如果
- 正斜杠
/
被看做是目录分隔符。 - 如果存在
/
(在开头或中间),则被排除的文件或目录将只是这个相对路径下的;如果不存在/
,则该模式表示的文件或目录(AAA/
)不管存在于哪一级目录中,都将被排除。- 例:
doc/frotz/
只会排除doc/frotz/
而不能排除a/doc/frotz
- 例:
frotz/
则会排除doc/frotz/
、a/doc/frotz/
、frotz
等
- 例:
AAA/
将只会匹配在任何一级目录下的AAA
目录,而AAA
则会匹配在任何一级目录下的目录或文件AAA
。*
匹配任意字符串除了/
,而?
匹配任意单个字符除了/
。[a-zA-z]
用来匹配在这个范围内的单个字符。
下面来介绍**
的用法:
**/
表示在任何目录下,即**/foo
其等价于foo
。/**
表示在目录中的东西,比如foo/**
表示foo
文件夹下的任何东西都被排除(但foo
目录本身不会被排除)。a/**/b
将匹配a/b
、a/x/b
、a/x/y/b
等等。