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

如何将develop分支hashX之后的所有提交迁移至master分支?

嘿,咱们来搞定把develop分支里hashX之后的提交迁移到master的事儿!你要的是hashX、hash20一直到hash24这些提交,而且不想把前面的hash12、hash13带过去对吧?直接merge肯定不行,得精准摘出目标提交。这里有两种实用方法,你可以根据实际情况选:

方法一:批量Cherry-pick(灵活可控,适合挑选提交)

这种方法适合你需要灵活选择提交,或者提交数量不算特别多的场景:

  • 先切换到master分支:
    git checkout master
    
  • 批量cherry-pick目标提交范围:这里要注意,hashX的父提交是hash14,所以用hash14..hash24就能精准选中hashX到hash24的所有提交:
    git cherry-pick hash14..hash24
    
  • 冲突处理:如果过程中遇到代码冲突,Git会暂停操作。你需要手动打开冲突文件,解决冲突后执行:
    git add <解决冲突的文件名>
    git cherry-pick --continue
    
    如果某个提交你不想处理了,可以用git cherry-pick --skip跳过;要是想彻底放弃这次操作,就用git cherry-pick --abort回到操作前的状态。
方法二:用Rebase --onto迁移连续提交(历史更整洁)

如果hashX到hash24是连续的提交,而且你希望master的提交历史更线性整洁,推荐用这种方法:

  • 先创建一个基于master的临时分支,避免修改原develop分支:
    git checkout -b temp master
    
  • 把develop分支中hash14之后的提交(也就是我们要的目标提交)迁移到临时分支上:
    git rebase --onto temp hash14 develop
    
    这里的--onto temp指定新的基址是temp分支,hash14是我们要排除的提交的终点(也就是只拿hash14之后的提交),develop是源分支。
  • 切换回master分支,合并临时分支:
    git checkout master
    git merge temp
    
    因为temp是基于master创建的,这里大概率是快进合并,不会有冲突;如果有冲突,解决后提交即可。
  • 最后可以删除临时分支:
    git branch -d temp
    

注意事项

不管用哪种方法,操作前最好先备份一下当前分支,防止操作失误:

git branch master-backup
git branch develop-backup

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:56:00