我正在尝试为我的存储库上的设置分支设置规则,但存在仅适用于特定分支的模式问题。即规则仅适用于brances master、develop、release
问题:该模式没有选取错误的分支
我尝试在这里查看,但它按预期工作 https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch
我已经尝试过,但无法使用 0 个分支或所选的所有内容:
{^.*(master).*$,^.*(develop).*$}
[master,develop,release]
[master;develop;release]*
PS 这个剂量相反,适用于所有支架,但列出的支架:
*[!master|!develop|!release]*
正如johnfo 在评论中所说,GitHub 的分支保护规则模式不是正则表达式。事实上,GitHub 文档提到它们是专门的Ruby File::FNM_PATHNAME 样式表达式。这是非常具体的(Git 本身根本不使用 Ruby 代码)。
我剪掉了git标签;奇怪的是,您自己包含了fnmatch,对于那些可能想在此处提供正确 Ruby 表达式的人来说,这是正确的标签。看起来 GitHub 没有设置该FNM_EXTMATCH标志,因此您可能需要多个匹配表达式(也在上面的评论中指出)。我懒得回答,只是添加一些链接似乎很有用。