在.ignitore中的多个文件扩展名的简写

时间:2018-01-11 09:51:11

标签: git gitignore

是否有类似Bash脚本的简写,用于匹配.gitignore文件中的多个不同扩展名,例如:

*.{bak,save,aux,nav,toc}

上面的语法

2 个答案:

答案 0 :(得分:4)

无法在线找到答案,所以自己尝试了一下,并且行得通(使用SourceTree创建测试本地存储库)。这是在编辑.gitignore文件。

* [。bak,.save,.aux ..导航,.toc]

逗号和句号之间也可以有空格或没有空格。

因此,就我而言,我必须这样做

忽略此目录中的所有文件,但dll和dic文件除外:
Web.Site/第三方程序集/ *
!第三方程序集/**/*[.dll,.dic]

答案 1 :(得分:0)

据我所知,没有办法做到这一点,除非您要忽略的扩展名全都是单个字符。另一个答案*[.ext, .txt, .bin]中提到的方法起初似乎很有效,但实际上忽略了太多事情。

根据Git's documentation

  

[]”在选定范围内匹配一个字符

如该页面后面的示例所示:

# ignore objects and archives, anywhere in the tree.
*.[oa]

这将忽略任何.o.a文件。

因此,这意味着*[.ext, .txt, .bin]的行为实际上与*[beintx., ]相同(这是相同的模式,其中删除并排序了重复的字符),并且将忽略结尾为的任何文件(包括扩展名)这9个字符中的任何一个。

我只是在自己的Git存储库中尝试了此方法,并且确实确实遵循了这种行为。