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

如何恢复本地已删除分支中已提交但未推送至远程的变更

误删未push本地分支的提交找回方案
  • 首先明确:只要你之前的本地提交已经执行过git commit,且删除分支后没有主动执行git gc清理操作,绝大多数情况都可以通过Git本地reflog找回,你后续执行的fetch远程分支操作不会修改本地reflog记录,不影响找回流程。

步骤1:定位丢失的提交哈希

执行以下命令查看本地所有HEAD变更历史:
git reflog
输出的每条记录对应一次本地Git操作,你可以根据commit的注释、操作时间找到删除分支前你最后提交的那条记录,每条记录开头的7位字符串就是对应commit的哈希值,将需要恢复的commit哈希记为<commit-hash>。

可选优化:如果记录过多可以缩小查找范围,比如查找最近24小时的提交:git reflog --since="24 hours ago",或者按提交注释关键词过滤:git reflog --grep="你的提交注释关键词"

步骤2:恢复提交到本地分支

执行以下命令基于找到的commit哈希新建分支,就能完整恢复所有未push的本地变更:
git checkout -b <恢复后的分支名> <commit-hash>
执行完成后,所有之前的本地提交都会完整保存在这个新分支中,可正常执行push、合并等后续操作。

极端情况说明

如果执行git reflog后无法找到对应提交,大概率是间隔时间过长触发了Git自动垃圾清理,这种情况无通用恢复方案,绝大多数近期误删场景都可以通过上述方法找回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:48:03