之前有一个项目没有建新的分支,强制回滚了(--hard),git log的提交版本都被覆盖掉了
Git 是一个强大的分布式版本控制系统,能够让开发者轻松地管理代码变更和协作开发。在使用 Git 的过程中,难免会遇到需要回退或恢复某些操作的情况。这时,git reflog 命令就显得尤为重要。本文将详细介绍 git reflog 的概念、用途及一些常见的使用示例。
什么是 Git Reflog?
git reflog 是 Git 的引用日志(Reference Log),它记录了所有对分支引用(如 HEAD、分支名)的更新操作。无论是提交(commit)、合并(merge)、重置(reset)还是检出(checkout),reflog 都会记录这些操作。这使得即使你误操作导致代码丢失,也可以通过 reflog 找回之前的状态。
git log 与 git reglog的区别
git log
git log用于查看项目的提交历史。- 它显示的是项目的正式提交记录,即所有在当前分支上的提交。
用法
git log
输出
-
git log的输出包括每个提交的提交哈希(SHA-1)、作者、提交日期和提交信息。 -
默认情况下,它只显示当前分支的提交记录。
-
适用场景
-
用于查看项目的开发历史。
-
用于查找特定的提交或了解项目的变更记录。
git reflog
功能
git reflog用于查看本地仓库的引用日志。- 它记录了所有对引用(如分支和 HEAD)的移动,包括那些已经被删除的引用。
用法
bash复制代码
git reflog
输出
-
git reflog的输出包括每个引用的移动记录,显示了旧的和新的提交哈希、操作类型(如commit,reset,checkout等)以及操作的时间。 -
它不仅显示当前分支的记录,还包括其他分支和 HEAD 的历史移动。
-
适用场景
-
用于恢复误删的分支或提交。
-
用于调试和了解仓库状态变化的详细历史。
-
特别有用在恢复丢失的提交或分支时。
总结
假如强制回退版本,使用git reset --hard <commit-hash> ,这样操作完以后,会丢失之前的提交记录,
这时就可以通过git reflog来查看之前提交的版本,来进行恢复
git log:显示的是项目的正式提交历史,适用于查看项目的开发变更记录。git reflog:显示的是本地仓库的引用移动历史,适用于调试和恢复误操作。