知乎专栏 |
reflog 类似我们软件中的 Undo/Redo ,就像使用 CMD+Z / CMD + SHIFT +Z 一样进行版本的切换和回滚。reflog 日志是保存在本地的,并不会 push 到远程,这就是他与 git log 的区别。
git reflog 与 git log的区别,git log 可以显示所有提交过的版本信息,但不包括已经被删除的 commit 记录和 reset 的操作
git reflog 可以是显示所有的操作记录,包括提交,回退的操作。一般用来找出操作记录中的版本号,进行回退,常用于恢复本地的错误操作。
git reflog 用法
Neo-iMac:test.netkiller.cn neo$ git reflog 120f1bb (HEAD -> main) HEAD@{0}: reset: moving to 120f1bb 9fcccf0 HEAD@{1}: commit: add tmp string de5ca5d (origin/main, origin/HEAD) HEAD@{2}: reset: moving to HEAD de5ca5d (origin/main, origin/HEAD) HEAD@{3}: pull: Fast-forward 120f1bb (HEAD -> main) HEAD@{4}: clone: from 192.168.30.5:netkiller.cn/test.netkiller.cn.git
回滚到 120f1bb
Neo-iMac:test.netkiller.cn neo$ git reset --hard 120f1bb HEAD is now at 120f1bb Initial commit