[转载]gitignore语法参考
全面解析.gitignore文件中的模式匹配。原文
.gitignore文件里的模式匹配有时真的让人很无语,看似非常简单,实则到处是坑, 本文我们来个彻底解析。本文来自git文档加上自己的理解,以及总结了一些常用实例,git文档可以参考文末的链接。
语法(pattern format)
第一部分语法规则
- 空行被忽略
- 以
#
开头的行视为注释,需要#
的地方要进行转意 - 其余每行表示一个pattern
- 行尾 的空格被忽略,需要行尾空格的地方要进行转意
!
意味着取反
,即原本被匹配上的文件被忽略,加上!
后,这些文件则被包含进来,需要!
的地方要要进行转意。但是如果一个文件的parent directory被忽略,则该文件不会被包含进来。- 以
/
结尾的pattern,/
将会被移除,然后按照下面的规则进行匹配,但是只匹配目录 - 如果pattern中没有
/
,则git把该pattern当作一个shell glob去匹配文件路径 - 如果pattern中包含
/
,则git把该pattern当作一个受限的shell glob去匹配文件路径:此时wildcards(*
)不能匹配/
符号 - 以
/
开头的pattern,/
匹配文件路径的开始,如/*.c
匹配cat.c
而不匹配mozilla/cat.c