- 没有以 “/” 结尾的规则同时匹配文件和目录;以 “/” 结尾的规则只匹配目录。匹配范围:任意目录
例如:
规则:“frotz/” 匹配目录:a/frotz/, b/c/frotz/,但不匹配文件 a/frotz;
规则:“a.txt” 匹配目录:a/a.txt/,a.txt/,匹配文件:a.txt, b/a.txt;
- 字符 “*” 匹配 “/” 外的任意多个字符;字符 “?” 匹配 “/” 外的任意一个字符
例如:
规则:“foo/*” 无法匹配子目录,因为 * 只匹配 “/” 外的字符;
- 如果规则的 开始 或 中间 部分含有 “/” 符号,则以相对 .gitignore 文件父目录的方式,匹配对应的文件或目录。此时,规则:/a/b* 等同于规则:a/b*(中间有 “/”)。
例如:
规则:“doc/frotz/” 匹配 doc/frotz 目录, 但不匹配 a/doc/frotz 目录
- 以 “**” 开头的规则匹配任意层级的匹配
- 以 “**” 结尾的规则匹配指定目录下的所有文件及目录
- 已经被跟踪的文件,即使重新添加至 ignore 中也不会生效