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

基于Tag创建Patch并提交PR时如何避免混入development分支未测试提交?

Patch分支PR评审防未测试提交方案

核心原则

全程保持Patch分支与development等包含未发布内容的分支物理隔离,所有操作基准锚定原始发布Tag。

具体操作步骤

  • 步骤1:创建Patch分支并推送远端
    基于正式发布Tag创建独立Patch分支,统一使用patch/前缀命名,推送时明确指定远端分支,不绑定默认上游:
    # 基于正式Tag vx.y.z创建功能修复分支
    git checkout -b patch/[修复内容标识] vx.y.z
    # 直接推送对应远端分支,不设置--set-upstream
    git push origin patch/[修复内容标识]
    
  • 步骤2:配置PR规则
    提交PR时,合并目标分支必须选择当前同名称的patch/[修复内容标识]分支,而非development或其他环境分支;仓库管理员可在后台配置规则,限制patch/前缀分支的PR合并目标只能为同系列Patch分支,禁止默认指向development。
  • 步骤3:本地操作防污染约定
    所有开发者在patch/前缀分支下操作时,禁止直接执行git pull,必须明确指定拉取的远端对应Patch分支,避免误拉其他分支内容:
    # 仅拉取当前Patch分支的远端更新
    git pull origin patch/[修复内容标识]
    
  • 步骤4:CI加自动校验阻断污染
    在PR的CI流水线中加入提交基准校验步骤,自动检查Patch分支是否混入基准Tag之后的未测试提交,校验不通过直接阻断PR合并:
    # 校验当前分支的祖先是否包含基准Tag,返回0表示符合要求,非0表示混入其他提交
    git merge-base --is-ancestor vx.y.z HEAD
    
  • 步骤5:评审通过后流程
    PR评审合并完成后,直接从当前patch/[修复内容标识]分支打新的Patch版本Tag,走test->qa->prod的正常发布流程;发布完成后将修复提交单独cherry-pick到development分支同步内容,不要直接合并Patch分支,避免带入冗余历史。

可选增强配置

  • 在仓库中设置patch/*分支的保护规则,禁止直接推送、禁止合并非同系列Patch分支的内容
  • 可在本地git配置中加入钩子,检测到当前处于patch/前缀分支时,拦截无参数的git pull操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:09:01