# git reflog 参考

URL: https://caijiao.org/reference/git/reflog
Source: docs/reference/git/reflog.md
Description: git reflog Reference，整理 HEAD 移动记录、找回丢失提交、reset 恢复、rebase 后恢复和常见错误。

`git reflog` 记录 HEAD 和分支引用的移动历史。提交看似丢失、reset 误操作、rebase 后想恢复时，reflog 经常是第一条救命线。

## 语法

```bash
git reflog
git reflog show <branch>
```

## 示例

查看 HEAD 记录：

```bash
git reflog
```

回到某个历史位置：

```bash
git reset --hard HEAD@{2}
```

基于旧位置创建恢复分支：

```bash
git switch -c recover-work HEAD@{2}
```

## 使用场景

- reset 后发现提交不见了。
- rebase 后想找回变基前状态。
- checkout、merge、pull 操作后想确认 HEAD 移动轨迹。
- 误删本地分支后找回提交。

## 常见错误

- 误以为 reflog 是远程备份；它主要是本地记录。
- 过了清理期限或执行垃圾回收后，旧对象可能无法恢复。
- 直接 `reset --hard` 到某条 reflog 前没有确认工作区是否有未保存改动。

## 相关内容

- [Git Reference](/reference/git/)
- [git reset](/reference/git/reset)
- [Git 如何找回丢失 commit](/how-to/git/recover-lost-commit)
- [Git 教程：撤销与恢复](/git/history/undo)
- [git-reflog 官方文档](https://git-scm.com/docs/git-reflog)
