GitHub规则集误判合规提交,无法合并至master分支
问题原因及解决办法
原因分析
- 正则表达式不匹配提交格式:你配置的规则正则中,作用域部分
(([\w-.]+))?仅允许字母、数字、下划线、连字符和点,但你的测试提交信息里用了(myfeature)的括号,这部分字符不在正则允许范围内,导致验证失败。 - master分支旧提交无影响:规则集只针对合并到master的新提交,已存在于master的历史提交不会干扰当前的合并验证,这一点可以直接排除。
解决办法
方案1:修正规则集的正则表达式(推荐)
调整正则的作用域部分,允许括号包裹的格式,适配常规的提交规范。修改后的正则如下:
^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w-.]+\))?(!)?:([\w ])+([\s\S]*)
这个正则可以完美匹配chore(myfeature): added empty file这类符合通用提交规范的信息。
方案2:临时调整提交信息(应急用)
如果暂时不想修改正则,可以去掉提交信息里的括号,比如改成chore-myfeature: added empty file,就能匹配原正则规则完成合并。
额外检查
确认规则集的应用细节:如果你的合并方式是创建合并提交(而非 squash/rebase),要注意合并提交的信息也需要符合正则规则;如果用squash合并,需确保最终生成的squash提交信息满足要求。
内容的提问来源于stack exchange,提问作者Guy Grin
相关产品推荐
相关产品推荐

