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

执行git branch -M main后本地提交丢失,无法查看及推送至GitHub求助

解决Git分支重命名后丢失提交的问题

问题分析

执行git branch -M main重命名分支后,新的main分支未关联原有提交记录,导致无法查看日志和推送,但提交记录实际仍保存在Git的日志文件中,只是分支引用丢失了。

解决步骤

  • 提取有效提交哈希
    打开本地仓库的.git/logs/HEAD文件,找到最后一行带有commit的记录,复制后面的长哈希字符串(类似a1b2c3d4e5f67890abcdef格式)。

  • 重建main分支并关联提交
    在终端执行命令,将<提交哈希>替换为你刚复制的字符串:

    git checkout -b main <提交哈希>
    

    该命令会直接创建并切换到main分支,同时让分支指向你之前的所有提交记录。

  • 验证恢复结果
    执行git log,应该能看到之前的15次提交;再执行git branch,会显示当前处于main分支。

  • 推送到远程仓库
    现在可以正常推送代码到GitHub:

    git push -u origin main
    

补充说明

出现这个问题大概率是分支重命名时,Git的分支引用文件出现异常(如意外损坏或丢失),但Git会将所有提交轨迹保留在日志文件中,只要能找到提交哈希就能恢复分支关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:02:38