You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改GitHub分支保护规则,仅允许特定命名的Feature分支合并PR到Master

解决GitHub仅允许特定命名分支PR合并到Master的方法

GitHub原生分支保护规则确实没有直接按源分支名称模式限制合并的选项,不过可以通过GitHub Actions工作流实现这个需求,步骤如下:

  • 编写分支检查工作流
    在仓库的.github/workflows目录下新建一个YAML文件(比如pr-branch-check.yml),添加以下代码:

    name: Validate PR Source Branch
    on:
      pull_request:
        types: [opened, synchronize, reopened]
        branches: [master]
    
    jobs:
      check-branch-pattern:
        runs-on: ubuntu-latest
        steps:
          - name: Check source branch name
            run: |
              # 获取PR的源分支名称
              HEAD_BRANCH="${{ github.head_ref }}"
              # 检查分支是否以test_patch/开头
              if [[ ! "$HEAD_BRANCH" =~ ^test_patch/ ]]; then
                echo "❌ 错误:仅允许从test_patch/开头的分支向Master提交PR"
                exit 1
              fi
              echo "✅ 源分支名称符合要求"
    
  • 配置分支保护规则

    1. 进入仓库的「Settings」→「Branches」→「Branch protection rules」,找到Master分支的保护规则
    2. 勾选「Require status checks to pass before merging」选项
    3. 在「Status checks that are required」列表中,找到刚才创建的工作流状态(比如check-branch-pattern)并添加进去
    4. 保存规则

这样设置后,任何从非test_patch/*开头的分支向Master提交的PR,都会触发工作流检查失败,无法完成合并。如果需要支持多种分支命名模式,可以修改正则表达式,比如^test_patch/|^hotfix/来同时允许test_patch/和hotfix/前缀的分支。

内容的提问来源于stack exchange,提问作者Sudarsan Sivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 16:39:56