本地Git硬重置后找回原来的提交

有些时候我们在做一些开发工作时,可能会用到本地Git管理,即在一个目录中进行开发,并将这个目录作为Git的版本库目录。
本文以Windows下安装了TortoiseGit为例进行说明。
将任意一个空目录作为工作目录,在右键中选择“Git 在这里创建版本库”
在这里插入图片描述
然后在弹出的对话框中直接点击确定,不勾选“制作纯版本库(没有工作目录)”
在这里插入图片描述
在这里插入图片描述
然后我们就可以在工作目录进行相应的工作了。
假设我们有三个提交了,这些都是在本地Git中,没有远程Git。
在这里插入图片描述
此时,工作目录中有如下三个文件。
在这里插入图片描述

然后由于某种需要将版本重置到第一个提交。在日志窗口,选中第一个提交,在右键菜单中选择“重置"master"到此版本”,在“重置”对话框中选择重置类型为“硬重置”,即会将副本中的版本重置到第一个提交。
在这里插入图片描述
在这里插入图片描述
再次看日志的时候就会发现,只有一个提交了,它后面的提交都不见了。
在这里插入图片描述
再看工作目录中,只有一个文件了,之前的文件已经被删除了。
在这里插入图片描述
此时如果发现是一个误操作,或者需要再回到之前的工作节点,应该怎么办?日志中已经找不到之前的提交了,而且没有远程Git仓库,只有本地仓库。

昨天我就遇到这种情况了,以为我几天的工作白费了。后面想到了Git的引用记录功能,可以成功找回原来的提交记录。如图所示,在右键Git的菜单中选择“显示引用记录”
在这里插入图片描述
在弹出的对话框中可以看到所有的操作记录(只要自己没有手动删除)
在这里插入图片描述
其中,引用列的 HEAD@{数字},数字0表示最后一次操作,数字越大则为越久的操作。操作列为操作类型。
此时在操作列中选中最近一个的commit操作,在右键菜单中选择“重置"master"到此版本”,在“重置”对话框中选择重置类型为“硬重置”,就可以在日志中看到之前的提交了,同时工作目录中的文件也回来了。
在这里插入图片描述
在这里插入图片描述
由此可见,Git中的引用记录是非常的重要,如非必要千万不要去手动删除。

Windows下图形界面还是比较好操作,那命令行呢?

  1. 使用
git log

查看当前副本日志,可以看到有3条提交记录
2. 使用

git reset 

来重置到第一个提交
3. 再查看当前副本日志,可以看到只有一条提交记录了
4. 使用

git reflog

查看引用记录
5. 再使用

git reset 

来重置到最后的提交记录
6. 查看当前副本日志,可以看到之前的所有提交记录了。
在这里插入图片描述

希望本文能帮助你成功找回之前的工作记录。

祝好!

猜你喜欢

转载自blog.csdn.net/witton/article/details/120013078
今日推荐