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

如何使用Git Flow基于部分提交创建小版本发布?

Git Flow 下选取部分提交创建小版本的最佳方案

我采用标准的Git Flow分支模型,在部分场景中需要从develop分支的所有提交里挑选部分内容创建小版本发布。

当前分支结构如下:

develop -------x----x1----x2----x3----x4----x5
release/3.4---/--\
master-----------y(tag 3.4)--------

其中提交x是上一版本发布后合并回develop的记录,目前已新增提交x1、x2、x3、x4、x5,我想要创建仅包含x1和x4的release/3.5版本。

我自己的思路(均不够理想):

  • 基于develop分支创建版本,撤销提交x2、x3、x5
  • 基于master分支的tag 3.4创建版本,挑选x1和x4提交,但最终只合并到master而非develop

最佳解决方案

最佳方案是基于tag 3.4创建release/3.5分支,通过git cherry-pick精准挑选需要的提交,完全符合Git Flow规范,具体步骤如下:

  1. 切换到master分支并拉取最新代码:
    git checkout master
    git pull
    
  2. 基于tag 3.4创建release/3.5分支:
    git checkout -b release/3.5 3.4
    
  3. 依次挑选x1和x4提交(替换为实际的提交哈希值):
    git cherry-pick <x1的提交哈希>
    git cherry-pick <x4的提交哈希>
    
    • 若过程中出现冲突,解决冲突后执行git cherry-pick --continue即可推进
  4. 完成release分支的测试与调整后,合并到master并打版本tag:
    git checkout master
    git merge --no-ff release/3.5
    git tag -a 3.5 -m "Release version 3.5"
    
  5. 将release/3.5分支合并回develop,确保develop包含所有已发布的功能:
    git checkout develop
    git merge --no-ff release/3.5
    
  6. 清理临时的release分支:
    git branch -d release/3.5
    

方案优势

  • 对比“基于develop撤销提交”:不会在develop分支留下撤销记录,避免后续分支管理或合并时出现混乱,保持develop分支的线性与干净
  • 对比“仅合并到master”:严格遵循Git Flow规范,确保develop分支同步所有已发布的功能改动,避免后续版本遗漏x1和x4的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:25:01