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