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

Git中意外分支后的代码丢失与MR异常问题求助

Git分支与MR异常问题解决步骤

先做备份(重中之重)

  • 给Branch A创建备份分支,防止操作失误丢失代码:
    git checkout BranchA
    git branch BranchA_backup
    
  • 同样给Branch B做备份:
    git checkout BranchB
    git branch BranchB_backup
    

理清提交历史

  • 查看Branch B比Branch A多的提交:
    git log --oneline BranchA..BranchB
    
  • 查看Branch A比Branch B多的提交:
    git log --oneline BranchB..BranchA
    
  • 用图形化日志更直观地看分支关系:
    git log --graph --oneline --all
    

修复Branch A的代码丢失问题

  1. 切换到Branch A,确保工作区无未提交修改:

    git checkout BranchA
    git status
    

    (如果有未提交修改,先执行git stash暂存,或者git commit提交)

  2. 重新执行rebase并处理冲突:

    git rebase master
    

    遇到冲突时,手动修改冲突文件,然后执行:

    git add .
    git rebase --continue
    

    重复直到rebase完成。

  3. 若rebase后仍丢失提交,用cherry-pick重建分支:

    • 基于最新master创建新分支:
      git checkout master
      git pull
      git checkout -b BranchA_new
      
    • 把之前查到的Branch A独有的提交哈希逐个cherry-pick过来:
      git cherry-pick <提交哈希1> <提交哈希2>
      

    处理冲突后执行git cherry-pick --continue,直到所有提交都迁移完成。

修复远程MR显示异常问题

  • 若要保留Branch A作为最终提交分支,推送修复后的分支到远程(注意--force仅在确认不会覆盖他人提交时使用):
    git push origin BranchA --force
    
  • 到MR页面,将原MR的关联分支切换为修复后的Branch A,或者关闭原MR,重新创建Branch A的新MR。

后续预防措施

  • 不要让多个本地分支对应同一个远程MR,每个功能分支应该对应独立的远程分支和MR,避免提交历史混乱。
  • 每次执行rebase、merge等操作前,先确认当前分支的提交历史,必要时先备份分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:45:44