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

GitLab Flow中如何仅合并至特定Commit位置(禁用cherry-pick)

不使用cherry-pick合并指定连续提交的解决方案

针对你的场景(master分支包含从A到Z的完整提交链,需合并A至D的所有连续提交,且避免cherry-pick的历史追溯和重复提交问题),推荐以下两种可靠方法:

方法一:基于目标提交创建临时分支后合并

这种方法逻辑清晰,适配大多数场景:

  • 切换到master分支并拉取最新代码:git checkout master && git pull
  • 基于commit D创建临时分支:git checkout -b temp/d-target D
  • 切换到生产分支(假设名为prod):git checkout prod
  • 执行合并操作:git merge temp/d-target
    合并完成后,生产分支会包含A至D的所有提交,且保留完整的历史链,后续追溯和合并更新都不会有问题。合并完成后可删除临时分支:git branch -d temp/d-target

方法二:直接合并指定commit D(需满足前提)

如果你的生产分支当前的基线提交早于A(即生产分支与master的共同祖先在A之前),可以直接执行:

  • 切换到生产分支:git checkout prod
  • 合并commit D:git merge D
    Git会自动识别生产分支与D之间的差异,仅合并A至D的所有连续提交,不会包含D之后的内容。

这两种方法的优势

  • 完整保留提交的历史关联,后续通过git log可清晰追溯每个提交的来源
  • 后续从master向生产分支合并更新时,Git能正确识别已合并的A至D提交,不会产生重复提交问题

内容的提问来源于stack exchange,提问作者남혁준

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:19:54