执行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
相关产品推荐
相关产品推荐

