如何恢复误执行git push -f origin后丢失的63个历史提交?
恢复被覆盖的63个GitHub提交方法
别慌,GitHub会保留一段时间的提交快照,按下面步骤就能找回来:
- 先找到丢失提交的哈希值:打开你的私有仓库页面,要么去「提交」板块翻找被覆盖的历史记录,要么点右上角「Insights」→「Network」,在分支活动轨迹里找到你误操作前的最后一个提交(就是那63个提交里的最新一个),点击它的哈希串(一串字母数字)复制下来。
- 本地重建分支:打开GitHub Desktop的「仓库」菜单,选择「在终端中打开」,输入下面的命令(把
<复制的哈希值>换成你刚才复制的内容):
这时候你本地就有了包含所有63个提交的分支。git checkout -b recover-branch <复制的哈希值> - 推回远程原分支:接着在终端里输入命令(假设你的原分支是
main,如果是其他分支就替换成对应名称):
执行完之后,远程仓库的原分支就会恢复到误操作前的状态。git push -f origin recover-branch:main - 嫌命令行麻烦?试试界面操作:找到那个最后丢失的提交后,点击「对比并拉取请求」,直接把这个提交合并回原分支,合并完成后就能恢复所有历史了。
注意:如果这段时间有其他人往这个分支推过新内容,恢复前要先确认合并冲突,但你是私有仓库且只有自己操作的话,直接按上面步骤来就行。
内容的提问来源于stack exchange,提问作者dimfalk
相关产品推荐
相关产品推荐

