shell
8061035 HEAD@{0}: reset: moving to 8061035 15d526a HEAD@{1}: reset: moving to 15d526ab987063e1a65a04cd429391a573154529 8061035 HEAD@{2}: reset: moving to 8061035b57357aa9bd144197c8170b6a4c7b91ff cb71ccd HEAD@{3}: reset: moving to cb71ccdec184e641af4a792e6ac4aef25b5d14df 8061035 HEAD@{4}: commit: 增加文章评论表单
原因是我发现我commit错了,然后就执行了git reset --hard cb71ccdec184e641af4a792e6ac4aef25b5d14df
,执行之后发现没有回退到cb71ccdec184e641af4a792e6ac4aef25b5d14df
,但是我的代码不知道跑到那个版本去了。。。(抱歉我现在精神混乱,此处就省略1万字了)
说了这么多,那么问题来了,看代码都看的出来,我用了3次git reset --hard xx
了,我怎么才能回到8061035
呢(8061035 HEAD@{0}: reset: moving to 8061035
我已经用过一次,没回去成功!)?
穿越回去 : git checkout 8061035 ; (但这是是显示为分离的)
你目前的8061035版本最后一次变更是:commit: 增加文章评论表单,你的意思应该不是回到这个版本。
你如果想回到第一步中的8061035版本
先用git log看下当前版本与你想回退的8061035版本之间有几个版本
这里假设有N个版本
试试:git reset --hard HEAD~N+1
如果版本已经因为太多而凌乱的话,简易使用sourceTree软件,将项目导入到软件中,可以很清楚的查看每个版本以及变更。也能选择想回退的版本回退回去。
先git log看看目前的版本号,再git status看一下代码的修改情况,git stash暂存一下现在的修改,然后查看一下代码,是否正确,然后再试试楼上的方法
楼上正解。checkout就可以了。