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

如何从同一分支向两个不同分支发起MR?

问题解答

你不能直接拉取develop分支后就发起MR,这么做会把develop的代码合并到你的task/common分支里,导致你的分支混入develop的无关提交,后续向develop发起MR时会出现不必要的冲突或冗余代码。

正确的操作步骤应该是这样:

  • 先确保当前task/common分支的所有改动都已经提交并推送到远程仓库。
  • 切换到本地的develop分支,拉取最新的远程代码:
    git checkout develop
    git pull origin develop
    
  • 基于最新的develop分支创建一个专门用来同步改动的新分支(比如命名为task/common-sync-develop):
    git checkout -b task/common-sync-develop
    
  • 把task/common分支里的目标提交cherry-pick到这个新分支上:
    # 单个提交用这个命令,替换成你要同步的提交哈希
    git cherry-pick a1b2c3d
    # 如果是多个连续提交,用范围提交哈希
    git cherry-pick a1b2c3d..e4f5g6h
    
  • 处理可能出现的代码冲突,解决后提交改动,再推送到远程:
    git add .
    git commit -m "同步task/common的改动到develop"
    git push origin task/common-sync-develop
    
  • 最后发起从task/common-sync-develop到develop分支的MR即可。

如果你的task/common分支和develop分支基线差异很小,且没有冲突,也可以直接发起从task/common到develop的MR,但这种方式风险较高——因为release和develop可能存在不同的代码版本,直接合并可能会把release分支的其他无关改动带进develop,所以更推荐用cherry-pick的方式精准同步你需要的改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:35:12