在正常的工作中,经常使用到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等等。