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

合并hotfix到develop分支时出现多提交的Git问题咨询

Git热修复流程相关问题解答

当前Git结构

Git分支结构

背景说明

  • 从develop分支创建ticket分支并完成修改,发布后将该ticket分支合并到main和develop分支
  • 从main分支创建新的hotfix分支,完成修改后成功合并回main分支,但合并到develop分支时,出现一个包含两个commit ID的提交,分别对应hotfix的变更和上次发布提交的变更

问题解答

1. 采用的热修复交付流程是否正确?

大体方向是正确的,但存在细节优化空间:从main拉取hotfix分支、修复后合并回main的操作符合热修复核心逻辑,但合并到develop时出现双提交,说明develop与main分支的提交历史已出现分叉,这大概率是之前合并ticket分支到两个分支时,未保持提交历史一致性(比如一个用快进合并,另一个用非快进合并)导致的。

2. 是否有标准的Git热修复交付方法?

目前广泛使用的是Git Flow规范中的热修复流程:

  • 从当前生产分支(一般为main/master)创建命名为hotfix/*的分支
  • 在hotfix分支上完成修复并提交变更
  • 将hotfix分支合并回main分支,同时打一个新的版本标签用于生产发布
  • 将hotfix分支合并回develop分支,确保后续开发分支包含该修复
  • 完成上述操作后删除hotfix分支

如果合并hotfix到develop时出现冲突,需手动解决冲突后完成合并;若develop分支已包含hotfix的相关变更,也可以用git cherry-pick命令单独提取hotfix的提交到develop分支。

3. 合并hotfix到develop分支时出现双提交是否属于正常情况?

这种情况不属于正常预期。它的本质是develop与main分支的提交历史出现分叉,Git无法进行快进合并,只能创建一个新的合并提交,该提交会包含两个父提交(分别来自develop当前头节点和hotfix的头节点)。之所以会关联上次发布提交的变更,是因为之前合并ticket分支到两个分支时,未保证提交历史同步,导致main上的发布提交在develop的历史中位置不一致或不存在。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:52:11