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

在分支内执行git branch -M main后原main分支丢失,求助恢复

找回原main分支的方法

原main分支的提交记录并未真正丢失,Git会留存所有操作的日志,你可以通过以下步骤恢复:

  1. 查看本地Git操作日志
    执行git reflog命令,该命令会展示所有分支的操作历史,包括被重命名或看似"消失"的分支提交记录。在输出中找到原main分支最后一次提交的条目,比如类似:

    abc123 HEAD@{5}: checkout: moving from main to second-branch
    def456 HEAD@{6}: commit: [原main分支的最后一次提交信息]
    

    这里的def456就是原main分支最后一个提交的哈希值。

  2. 恢复原main分支
    拿到对应哈希值后,执行命令重建并切换回原main分支:

    git checkout -b main def456
    

    若只想创建分支不切换,可执行:

    git branch main def456
    

    完成后再执行git branch,就能看到恢复后的main分支,内容和之前一致。

  3. 处理远程仓库分支(按需操作)
    如果远程仓库的main分支现在是原second-branch的内容,可根据需求选择:

    • 强制推送恢复后的main分支(注意:会覆盖远程main,需确保团队成员知晓):
      git push -f origin main
      
    • 或者将恢复的main分支推送到远程新分支(比如main-old),保留远程现有main:
      git push origin main:main-old
      
  4. 验证分支状态
    执行git log --oneline --graph --all查看所有分支的提交历史,确认原main分支的内容已成功恢复。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:48:15