向已合并后删除的Git分支提交代码后丢失,如何找回对应提交内容?
代码恢复操作步骤
你的代码不需要重写,只要你本地确实执行过commit操作,提交的内容都会保存在Git本地数据库中,可以通过以下步骤找回:
- 第一步:执行reflog命令查看本地所有Git操作记录
命令输出会按时间倒序展示所有HEAD指针的变更记录,包括你在X分支的提交、切换分支的操作,找到你在X分支最后一次提交对应的7位哈希值(通常提交记录备注就是你当时写的commit信息,很容易识别)。git reflog - 第二步:恢复丢失的提交
你可以直接基于找到的哈希值重建分支,所有之前提交的代码都会完整恢复:
执行完成后你就能在新的git checkout -b recovery_x 你找到的哈希值recovery_x分支看到所有之前丢失的提交内容,也可以正常push到远程。
补充说明
Sourcetree看不到X分支提交是因为远程X分支被删除后,本地X分支的远程跟踪关系失效,Sourcetree默认展示的提交历史只包含当前可到达的分支链,而git reflog记录的是本地全量操作日志,不受分支删除的影响。
只要你没有手动执行git gc类的清理操作,半年内的提交记录都可以通过上述方式找回。
内容的提问来源于stack exchange,提问作者bao le
相关产品推荐
相关产品推荐

