最近事情多,几天没休息好,写代码有点神游物外,所有就遇到了git reset后,想再恢复的情况,只记得有这功能但不知道怎么操作,查了一番记录一下。
git reset
reset会修改HEAD的指向,但不会创建新的分支
--soft – 缓存区和工作目录都不会被改变
--mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard – 缓存区和工作目录都同步到你指定的提交
一旦reset HEAD~xxx,HEAD就会指向历史commit,之后的commit其实还在,但看不到了
如果在此基础上有新的提交,就真的丢弃了HEAD之后的提交
但万一不小心reset的过多了,或者手误了,如何恢复呢?
使用git relog
git relog类似于mysql的undolog,记录了本地所有分支的git操作记录,
git relog查看过往的reset命令
可以看到reset之前的提交commit log
如果要恢复,只需要再次git reset 4665343c就可以了