git reflog

记录 HEAD 和分支引用的所有变更历史,可用于恢复误操作丢失的提交

语法

git reflog [show] [<options>] [<ref>]

参数

参数说明示例级别
show 显示引用日志(默认操作) 常用
--all 显示所有引用的日志 常用
-n <number> 限制显示条数 常用
expire --expire=<time> 清理指定时间之前的记录 常用
--date=relative 显示相对时间 常用

示例

查看 HEAD 的变更历史

git reflog
abc1234 HEAD@{0}: commit: feat: 添加搜索 def5678 HEAD@{1}: checkout: moving from main to feature 789abcd HEAD@{2}: reset: moving to HEAD~1

查看 main 分支的引用变更历史

git reflog show main

恢复到 3 步操作之前的状态

git reset --hard HEAD@{3}

从 reflog 中找到的提交创建恢复分支

git checkout -b recover-branch abc1234

用相对时间显示(如 2 hours ago)

git reflog --date=relative

技巧

相关命令