Rulesets
May 28, 2026 · View on GitHub
GitHub Rulesets 用于统一控制分支、tag 和 push 行为。
它比单个分支保护规则更适合组织级、仓库级的统一治理。
适合场景
- 多个分支需要统一规则
- 组织内多个仓库需要统一规范
- 需要规则启用、暂停、审计
- 需要限制特定路径、文件大小或提交元数据
- 希望把分支规则和 tag 规则集中管理
可以控制什么
常见规则包括:
- 限制创建、更新、删除分支
- 要求 PR 才能合入
- 要求状态检查通过
- 要求线性历史
- 限制 force push
- 保护 tag
- 对特定路径设置规则
不同规则能力会随 GitHub 版本和仓库类型变化,实际以官方文档和设置页为准。
和 Branch Protection 的关系
Rulesets 和 Branch Protection 可以同时存在。
GitHub 官方文档说明,多个 rulesets 命中同一目标时会聚合规则。
对新团队来说,建议先用 Branch Protection 起步。仓库多、规则复杂后,再逐步切到 Rulesets。
推荐落地顺序
- 先保护
main - 再保护
release/* - 再抽象成 ruleset
- 再推广到组织内多个仓库
- 定期审计规则是否仍然有效
多仓库团队建议
40+ 微服务这类场景里,Rulesets 的价值在于统一底线:
- 默认分支必须走 PR
- 必需检查名称保持一致
- 禁止普通成员删除或强推关键分支
- release 分支和 tag 有单独规则
- 高风险仓库保留更严格配置
Rulesets 适合表达统一规则,仓库内的特殊差异仍要保留清晰说明。
和传统 Branch Protection 相比,Rulesets 更适合多规则叠加、组织级基线和多仓库治理。新团队可以先从 Branch Protection 起步,仓库多起来后再迁到 Rulesets。