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

如何从已删除且合并到Master的远程分支Git Cherry-pick提交?

解决从已合并删除的分支提取特定提交的问题

一、从Master分支追溯目标提交

因为Branch2已合并到Master,其所有提交的变更都包含在Master的合并提交中,可通过以下步骤定位目标提交的哈希:

  • 列出Master分支的提交历史,找到合并Branch2的提交(即图示中的K):
    git log --oneline Master
    
  • 查看该合并提交的父提交,其中一个是Branch2的最后提交G:
    git show <K的哈希值> --pretty=format:"%P"
    
    输出的两个哈希里,对应Branch2分支的那个就是G的哈希
  • 从G往前追溯3个提交,即可找到?, E, F:
    git log --oneline <G的哈希值>~3..<G的哈希值>
    
    记录这三个提交的哈希值备用

二、在Branch1上cherry-pick目标提交

切换到Branch1分支,按提交先后顺序(从最早的?到最晚的F)执行cherry-pick:

git checkout Branch1
git cherry-pick <?的哈希值>
git cherry-pick <E的哈希值>
git cherry-pick <F的哈希值>
  • 若遇到冲突,手动解决文件冲突后,执行git cherry-pick --continue继续操作
  • 若想放弃当前cherry-pick流程,执行git cherry-pick --abort

三、备选:通过全局reflog查找本地痕迹

如果本地曾经拉取过Branch2,可查看全局reflog寻找相关记录:

git reflog

在输出中搜索包含Branch2的条目,找到对应的提交哈希后,再通过git log追溯该哈希的历史,提取目标提交

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:30:41