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

如何从GitLab的develop分支挑选部分提交向main分支创建合并请求?

高效创建仅包含指定提交的GitLab合并请求

如果不想用git cherry-pick逐个处理提交,试试下面几种更高效的方案:

方法一:交互式变基生成干净分支

这种方式能一次性筛选并应用所有需要的提交:

  • 先拉取main分支最新代码,创建临时分支:
    git checkout main
    git pull
    git checkout -b feature/selected-commits
    
  • 执行交互式变基,对比develop和main的提交:
    git rebase -i main develop
    
    编辑器会列出develop比main多的所有提交,把不需要的提交行前的pick改成drop(或直接删除该行),只保留目标提交。保存退出后,变基会自动把这些提交应用到临时分支。
  • 推送临时分支到GitLab:
    git push origin feature/selected-commits
    
  • 最后在GitLab上基于这个临时分支创建到main的合并请求即可。

方法二:GitLab网页端直接筛选提交

如果不需要本地操作,直接在GitLab网页上就能完成:

  1. 进入项目的「合并请求」页面,点击「新建合并请求」。
  2. 源分支选develop,目标分支选main。
  3. 进入MR编辑界面后,切换到「提交」标签页,这里会列出所有待合并的提交。
  4. 点击不需要的提交旁的✕,将其从MR中移除。GitLab会自动调整MR的内容,只保留你选中的提交。
  5. 填写MR标题、描述后提交即可。

方法三:批量补丁应用(适合分散提交)

如果需要的提交比较分散,用补丁批量处理更高效:

  • 为每个目标提交生成补丁文件:
    git format-patch -1 <提交哈希值> --stdout > patch-<提交哈希值>.patch
    
    重复此命令,生成所有需要的补丁。
  • 切换到main分支,创建临时分支并拉取最新代码:
    git checkout main
    git pull
    git checkout -b feature/selected-commits
    
  • 批量应用所有补丁:
    git am patch-*.patch
    
  • 推送临时分支到GitLab,再创建到main的MR。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:59:58