误操作Git将main分支覆盖为b1分支,如何恢复原main分支?
恢复被覆盖的GitHub远程main分支
步骤1:找回原main分支的提交哈希
- 本地执行
git reflog,查看所有操作记录,找到被覆盖前main分支最后一次提交的哈希值(一串类似a1b2c3d的字符) - 要是本地没找到,直接去GitHub仓库的Commits页面翻找——GitHub会保留所有提交记录,哪怕分支被覆盖,只要没触发垃圾回收就能找到。找到原main的最后提交后,复制它的哈希值。
步骤2:重置本地main分支到原状态
- 先切换到当前main分支:
git checkout main - 执行重置命令:
git reset --hard <刚才复制的原提交哈希>,把本地main分支恢复到被覆盖前的版本
步骤3:强制推送恢复后的分支到远程
- 执行
git push -f origin main,强制将本地恢复好的main分支推送到远程,替换掉错误的版本
注意事项
- 立刻通知团队其他成员:让他们先执行
git fetch origin,再执行git reset --hard origin/main,避免他们本地还保留被覆盖的错误分支版本 - 以后设置分支上游时要仔细核对分支名,
git branch --set-upstream-to=origin/<目标分支>是给当前分支绑定远程跟踪分支,别搞错分支名称
内容的提问来源于stack exchange,提问作者Benedict
相关产品推荐
相关产品推荐

