可以通过 设置 GitHub 仓库的分支保护规则(Branch Protection Rules) 来禁止直接向 main 分支推送(push),强制所有代码变更必须通过 Pull Request(PR) 进行代码审查。
✅ 目标效果
设置完成后:
- ❌ 任何人(包括管理员)都不能直接
git push到main分支 - ✅ 所有代码必须通过 Pull Request 提交
- ✅ 可要求 PR 必须经过审批(Approval)
- ✅ 可要求 CI/CD 构建通过后才能合并
🛠️ 设置步骤(以 GitHub 网页端为例)
第一步:进入仓库设置
- 打开你的 GitHub 仓库页面
- 点击
Settings标签 - 在左侧菜单中选择
Branches
第二步:添加分支保护规则
-
在 "Branch protection rules" 区域,点击
Add rule -
在 "Branch name pattern" 输入框中输入:
main你也可以用
master或其他分支名,支持通配符如release-* -
勾选以下保护选项:
✅ 强制要求 Pull Request(核心设置)
- Require a pull request before merging(要求合并前必须有 PR)
- 建议勾选:
- Require approvals(要求至少 1 人审批)
- Dismiss stale pull request approvals when new commits are pushed(新提交后需重新审批)
- 建议勾选:
✅ 可选:要求状态检查(如 CI 构建通过)
- Require status checks to pass before merging
- 例如:
build,test,lint等 GitHub Actions 工作流 - 勾选你希望通过的检查项
- 例如:
✅ 可选:禁止绕过规则
- (对管理员也生效)✅

