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

Git多分支不同Pull Request操作疑问及优化方案咨询

解答:双分支(develop/release)下B类任务的高效提交流程

首先确认你的核心疑问:Cherry-pick确实无需暂存恢复

你完全说对了!git cherry-pick的设计就是用来将特定提交复制到当前分支,只要你的工作区是干净的(没有未提交的修改),就可以直接操作,根本不需要先暂存文件再切换分支恢复。它只会影响当前分支的内容,不会干扰其他分支的状态。

更高效的方式:除了Cherry-pick,还有这些技巧

Cherry-pick是最直接的方案,但还有几个更高效的选项适配不同场景:

  • GitHub原生Cherry-pick功能:如果你的B类任务是单个提交,直接在GitHub的提交详情页点击「Cherry pick」按钮,选择release分支,GitHub会自动帮你创建一个新分支并发起PR,全程不用碰本地Git工具。
  • 批量Cherry-pick:如果B类任务有多个提交,不管是命令行还是GUI工具,都支持批量选择提交一次性复制,不用逐个操作。
  • 跨分支PR(谨慎使用):如果release和develop的差异很小,你可以直接从已合并到develop的B类任务分支发起PR到release,但这种方式容易产生大量冲突,只适合分支差异极小的情况。

具体操作步骤(适配你的流程)

你的B类任务流程是:从develop开分支→PR到develop→从release开分支→PR到release,下面分命令行、Sourcetree、GitKracken三种方式给出步骤:

命令行步骤

  1. 完成B类任务开发并合并到develop:
    • 切换到develop并拉取最新代码:git checkout develop && git pull
    • 创建B类任务分支:git checkout -b feature/B_task
    • 开发完成后提交推送:git add . && git commit -m "完成B类任务开发" && git push origin feature/B_task
    • 在GitHub发起PR到develop,审核通过后合并。
  2. 处理release分支的PR:
    • 切换到release并拉取最新代码:git checkout release && git pull origin release
    • 创建release分支:git checkout -b release/B_task
    • 找到你在feature/B_task上的提交哈希(可在GitHub PR页面或git log中查看)
    • 批量cherry-pick多个提交:git cherry-pick <提交哈希1> <提交哈希2>(单个提交只需写一个哈希)
    • 若有冲突,解决后执行:git add . && git cherry-pick --continue
    • 推送release分支:git push origin release/B_task
    • 在GitHub发起PR从release/B_task到release,审核通过后合并。

Sourcetree步骤

  1. 完成B类任务到develop的PR合并后,打开Sourcetree:
    • 在左侧分支列表切换到release,点击顶部「Pull」获取最新代码。
    • 右键点击release分支→选择「New Branch」,命名为release/B_task,点击「Create Branch」并切换到该分支。
    • 打开「Log」视图,找到你在feature/B_task上的所有提交(或合并到develop的提交)。
    • 右键点击目标提交(可多选)→选择「Cherry pick」,确认后点击「OK」。
    • 若有冲突,Sourcetree会提示解决,编辑冲突文件后点击「Resolve」,继续完成cherry-pick。
    • 提交cherry-pick的修改(Sourcetree会自动填充提交信息),点击「Push」推送release/B_task到GitHub。
    • 打开GitHub,找到该分支发起PR到release。

GitKracken步骤

  1. 完成develop分支的PR合并后,打开GitKracken:
    • 切换到release分支,点击右上角「Pull」按钮获取最新代码。
    • 右键点击release分支→选择「Create Branch」,命名为release/B_task,创建并切换到该分支。
    • 在左侧「History」面板找到feature/B_task的目标提交(可多选)。
    • 右键点击提交→选择「Cherry Pick」,确认后点击「Cherry Pick」按钮。
    • 若有冲突,GitKracken会打开冲突编辑器,解决后点击「Mark as Resolved」,完成cherry-pick。
    • 提交修改(GitKracken自动填充信息),点击右上角「Push」推送release/B_task到GitHub。
    • 在GitHub发起PR到release分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:39:06