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

GitHub回滚后如何恢复已合并删除分支并手动重新合并?

解决方法

针对回滚master后恢复已合并分支(含已删除分支)更改的需求,可按以下步骤操作:

1. 定位差异范围

查看完整代码差异

直接对比回滚后的master与before_rollback分支的所有代码改动,无需关心改动来源分支:

git diff master..before_rollback

筛选合并提交(对应已合并PR)

如果只想提取通过PR合并的提交(即使原分支已删除,合并提交仍保留在before_rollback中),可执行:

git log --merges --oneline master..before_rollback

输出结果里的每条记录就是原master上合并过的PR对应的合并提交。

2. 提取单个PR的改动

针对每个需要恢复的合并提交:

  • 查看提交详情,确认PR内容:
    git show <合并提交哈希值>
    
  • 生成该PR的补丁文件(精准提取PR带来的改动):
    git diff <合并提交哈希值>^1 <合并提交哈希值> > pr-编号.patch
    
    注:^1指向合并提交的第一个父节点(即合并前的master状态),确保只提取PR的独有改动。

3. 应用改动到master

用补丁文件应用

切换回master分支,尝试应用补丁:

git checkout master
git apply pr-编号.patch

若出现冲突,直接在本地解决后提交即可。

直接Cherry-pick合并提交

如果合并提交无冲突,可直接将提交复制到master:

git checkout master
git cherry-pick <合并提交哈希值>

遇到冲突时,解决后继续执行:

git cherry-pick --continue

关键注意事项

  • 先将before_rollback推送到远程,防止本地分支丢失:
    git push origin before_rollback
    
  • 强制推送master后,通知团队成员重新拉取最新分支:
    git fetch origin
    git reset --hard origin/master
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:05:21