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

Git Release Flow中如何部署非提交序列的指定任务功能

如何在Release Flow模式下创建不含特定任务的部署标签?

背景与场景

新项目采用Release Flow流程,用main分支(原master/production分支)作为项目最新状态的基准,通过Git标签完成生产发布。

当前场景:

  • 开发者A完成中等优先级任务A,先合并到main分支
  • 开发者B完成高优先级任务B,随后也合并到main分支

现在任务B已通过测试,要部署到生产环境,但任务A还在测试阶段不能部署,需要创建仅包含任务B的部署标签。


第一个场景的解决方案

@Ôrel提出的直接在task B分支的最新提交上打标签的方案完全适配这个场景,操作步骤如下:

  1. 切换到任务B的开发分支:
    git checkout task-B
    
  2. 用git log --oneline确认当前提交是任务B的最终完成提交(避免误选中间提交)
  3. 创建带备注的标签并推送到远程仓库(示例标签名v1.0.1):
    git tag -a v1.0.1 -m "仅包含任务B的生产部署标签"
    git push origin v1.0.1
    

这个标签对应的代码只包含任务B的所有变更,完全不会带上任务A的提交。


后续扩展问题:如何创建包含任务B和C但不含A的部署标签?

如果后续任务C也完成测试准备部署,但任务A仍在测试中,可以通过临时整合分支来实现:

  1. 从任务B的最终提交(也就是之前打标签的那个提交哈希)创建临时发布分支:
    git checkout -b release-B-C <任务B的提交哈希值>
    
  2. 将任务C的开发分支合并到这个临时分支:
    git merge task-C
    
    (如果出现冲突,直接在这个临时分支里解决就行,不会影响main分支的状态)
  3. 在临时分支的最新提交上创建部署标签:
    git tag -a v1.0.2 -m "包含任务B和C的生产部署标签"
    git push origin v1.0.2
    
  4. 等任务A完成测试后,直接把任务A合并到main分支即可,后续正常基于main打标签发布就行。

内容的提问来源于stack exchange,提问作者Влад Чачиев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:25