如何配置GitHub分支规则集,仅要求src目录变更需提交PR?
用Branch Ruleset实现目录级PR管控的方法
GitHub的Branch Ruleset支持路径条件过滤,完全能满足你的需求——让src目录必须走PR,.github和README.md可以直接提交。具体配置步骤如下:
1. 创建新的Branch Ruleset
- 打开仓库的「Settings」→「Rules」→「Branch rulesets」,点击「Create ruleset」
- 先选规则要管控的分支:在「Branch name pattern」里直接选择main和dev,或者用匹配模式
main,dev也行
2. 设置路径过滤(关键步骤)
在「Conditions」区域找到「Paths」选项:
- 选择「Include」,添加路径规则
src/**(表示src目录下所有文件和子目录的变更都会触发规则) - 再选择「Exclude」,添加
.github/**和README.md(这两个路径的变更直接跳过规则限制)
3. 开启强制PR规则
在「Rules」区域找到「Require a pull request before merging」,打开这个开关:
- 你还可以按需设置其他PR附加要求,比如需要审批、CI检查通过等,但核心就是开启这个强制PR的规则
配置完成后,只有修改src目录下的文件时,才会被要求提交PR才能合并;修改.github里的Action配置或者README.md时,直接推送到main/dev分支即可,不用走PR流程。
替代方案:旧版分支保护规则
如果你习惯用旧版的Branch Protection Rules,也能实现类似效果:
- 进入「Settings」→「Branches」→「Branch protection rules」,创建针对main/dev的规则
- 开启「Require a pull request before merging」
- 找到「Allow specified actors to bypass required pull requests」,在「Paths」中添加
.github/**和README.md,这样这些路径的变更就能绕过PR要求
不过更推荐用Branch Ruleset,它的路径过滤逻辑更灵活,规则管理也更清晰。
内容的提问来源于stack exchange,提问作者tridy
相关产品推荐
相关产品推荐

