Regex Github“;“分支名称模式”;否定
在Github上,当您转到分支设置并创建“分支保护规则”时,如何指定除“主”之外的任何分支?我尝试了一系列类似正则表达式的表达式,但似乎都不起作用:(您可以使用负前瞻来断言字符串“master”不匹配:Regex Github“;“分支名称模式”;否定,regex,github,Regex,Github,在Github上,当您转到分支设置并创建“分支保护规则”时,如何指定除“主”之外的任何分支?我尝试了一系列类似正则表达式的表达式,但似乎都不起作用:(您可以使用负前瞻来断言字符串“master”不匹配: ^((?!^master$).)*$ 您可以测试这个regexGitHub使用fnmatch与提供的任何模式进行匹配,以找出适用于分支保护的规则的分支 GitHub还没有一个精确的fnmatch模式,它可以精确地解析除master之外的任何内容,但最接近它的模式是: *[!master]*
^((?!^master$).)*$
您可以测试这个regexGitHub使用
fnmatch
与提供的任何模式进行匹配,以找出适用于分支保护的规则的分支
GitHub还没有一个精确的fnmatch
模式,它可以精确地解析除master之外的任何内容,但最接近它的模式是:
*[!master]*
但这也将排除只有m
、a
、s
、t
、e
、r
的分支,或只有这些字母组合的分支
查看有关上述内容的更多详细信息,我通过创建六条单独的规则解决了这一问题:
[!m]*
m[!a]*
ma[!s]*
mas[!t]*
mast[!e]*
maste[!r]*
您可以使用以下内容创建规则:
master
然后创建另一个规则(在第一个规则之后):
然后,第二个规则将适用于除master之外的所有分支,因为master包含在前面的规则中:
我不确定,但尝试一下
{m,[^m]*,ma,m[^a]*,mas,ma[^s]*,mast,mast[^e]*,maste,mast[^e]*,maste[^r]*}
@revo“规则无效”:(Github的fnmatch实现似乎有限。有人发现了吗?没有。给出的消息是:^((?!^master$)规则无效。)*$
github的分支保护规则似乎只支持通配符,而不支持正则表达式github规则以fnmatch为基础,而不是以RegeXey@MadhuBhat为基础,fnmatch
page从不谈论[!…]
语法。您介意告诉我它是从哪里来的吗?@revo文档中没有提供这种情况的示例,但我是根据给出的示例推导出来的。使用*c*
,[set]的语法
和!或^
是求反运算符。我在文档中发现!
的行为与对字符类求反的行为相同。它的意思是[!master]
并不意味着不master
,但它既不意味着m
,a
,s
,t
,e
也不意味着r
。切换到main
作为默认分支将使生活更简单的具体示例。+1是一个聪明的解决方案。
**/**