本地Git硬重置后找回原来的提交
有些时候我们在做一些开发工作时,可能会用到本地Git管理,即在一个目录中进行开发,并将这个目录作为Git的版本库目录。 本文以Windows下安装了TortoiseGit为例进行说明。 将任意一个空目录作为工作目录,在右键中选择“Git 在这里创建版本库”
然后在弹出的对话框中直接点击确定,不勾选“制作纯版本库(没有工作目录)”
然后我们就可以在工作目录进行相应的工作了。 假设我们有三个提交了,这些都是在本地Git中,没有远程Git。
此时,工作目录中有如下三个文件。
然后由于某种需要将版本重置到第一个提交。在日志窗口,选中第一个提交,在右键菜单中选择“重置"master"到此版本”,在“重置”对话框中选择重置类型为“硬重置”,即会将副本中的版本重置到第一个提交。
再次看日志的时候就会发现,只有一个提交了,它后面的提交都不见了。
再看工作目录中,只有一个文件了,之前的文件已经被删除了。
此时如果发现是一个误操作,或者需要再回到之前的工作节点,应该怎么办?日志中已经找不到之前的提交了,而且没有远程Git仓库,只有本地仓库。
昨天我就遇到这种情况了,以为我几天的工作白费了。后面想到了Git的引用记录功能,可以成功找回原来的提交记录。如图所示,在右键Git的菜单中选择“显示引用记录”
在弹出的对话框中可以看到所有的操作记录(只要自己没有手动删除)
Windows下图形界面还是比较好操作,那命令行呢?
- 使用
1git log
查看当前副本日志,可以看到有3条提交记录 2. 使用
1git reset
来重置到第一个提交 3. 再查看当前副本日志,可以看到只有一条提交记录了 4. 使用
1git reflog
查看引用记录 5. 再使用
1git reset
来重置到最后的提交记录 6. 查看当前副本日志,可以看到之前的所有提交记录了。
希望本文能帮助你成功找回之前的工作记录。
祝好!
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2021/2021-08-31-本地Git硬重置后找回原来的提交/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。