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

如何恢复已合并到master后被移除的分支a的变更?

恢复被移除的a分支变更到master分支

以下是几种可靠的操作方式,根据你的实际情况选择:

方法一:重新应用a分支的原始提交

如果a分支的变更原本是通过几个独立提交合并到master的,最稳妥的方式是把这些提交重新cherry-pick到当前master:

  1. 切换到master分支并拉取最新远程代码:
    git checkout master
    git pull origin master
    
  2. 查看a分支的所有提交记录,找到需要恢复的提交哈希:
    git log --oneline a
    
  3. 逐个将这些提交应用到master上(替换<commit-hash>为实际哈希值):
    git cherry-pick <commit-hash>
    
    • 如果a分支是通过合并提交并入master的,需要指定父节点(通常选master作为父节点,用-m 1):
      git cherry-pick -m 1 <merge-commit-hash>
      
  4. 若遇到冲突,手动解决文件中的冲突标记,然后执行:
    git add <冲突文件名>
    git cherry-pick --continue
    
  5. 所有提交应用完成后,推送到远程master:
    git push origin master
    

方法二:直接对比分支差异恢复

如果确定a分支的所有变更都需要恢复,也可以直接通过分支差异批量应用:

  1. 切换到master并拉取最新代码:
    git checkout master
    git pull origin master
    
  2. 方式A:生成差异补丁并应用
    • 生成a分支相对于当前master的差异补丁:
      git diff master..a > restore_changes.patch
      
    • 应用补丁到master:
      git apply restore_changes.patch
      
    • 解决冲突后,提交变更:
      git add .
      git commit -m "Restore changes from branch a"
      git push origin master
      
  3. 方式B:直接覆盖master文件(谨慎使用)
    • 直接将a分支的所有文件内容覆盖到当前master(会丢弃master中与a分支冲突的本地修改):
      git checkout a -- .
      
    • 提交并推送:
      git add .
      git commit -m "Restore full changes from branch a"
      git push origin master
      

注意:操作前建议先备份当前master分支(比如创建一个临时分支git checkout -b master-backup),避免误操作导致数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:52:10