GitHub

Git reflog恢复:误切分支后先找回提交再决定下一步

资料核对与更新:2026-10-28 · 阅读约2分钟

找不到刚才的提交时,可以查看本地引用变动记录。本文说明如何建立恢复分支并核对内容。

Git提交与分支工作流示意
Git提交与分支工作流示意;作者:TheresNoTime;许可:CC BY-SA 4.0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

提交刚才还在,切换或重置后却看不到,不一定已经彻底丢失。Git reflog 记录本地引用移动历史,可用于查找先前的位置,但它不是永久备份。

先保护当前状态

运行状态检查,记录当前分支和尚未提交的文件。不要急着执行 hard reset 或清理操作,否则可能扩大丢失范围。reflog 主要记录引用变化,未曾提交的内容不一定能通过它恢复。

查找候选位置

查看 HEAD 或相关分支的 reflog,根据时间、操作描述和提交内容找到候选。不要只凭一条时间记录下结论;阅读差异和提交信息,确认它确实包含需要的修改。

创建恢复分支

在确认的提交位置建立一个新分支,切换后核对文件与测试结果。再决定通过合并或选择提交的方式带回当前开发分支,避免直接重写共享分支历史。若候选已被清理或从未提交,reflog 可能无法恢复。

验收时确认恢复分支可见、内容完整、原分支也没有被意外改动。重要代码仍应定期推送或备份;本地引用记录有保留期限,不能当作唯一恢复手段。

参考资料

资料核对日期:2026年10月28日。

Git reflog

Git 官方手册

本文新增价值
针对Git reflog恢复整理常见误区、操作顺序和验证方法,区分官方资料说明与面向实际问题的维护建议。