如果我们在reset之后
>>> git reset --soft HEAD~
发现不需要reset,想要恢复至reset之前的状态
首先:
>>> git reflog
查看之前的操作记录
ffd4621 (HEAD -> 2.3, master) HEAD@{0}: reset: moving to HEAD~
22d6484 (origin/master, origin/HEAD, origin/2.3) HEAD@{1}: checkout: moving from master to 2.3
ffd4621 (HEAD -> 2.3, master) HEAD@{2}: reset: moving to HEAD~
22d6484 (origin/master, origin/HEAD, origin/2.3) HEAD@{3}: merge 2.3: Fast-forward
ffd4621 (HEAD -> 2.3, master) HEAD@{4}: checkout: moving from 2.3 to master
22d6484 (origin/master, origin/HEAD, origin/2.3) HEAD@{5}: commit: 20210413停止2020040801和2020041101任务执行
ffd4621 (HEAD -> 2.3, master) HEAD@{6}: reset: moving to HEAD~
55966c5 HEAD@{7}: checkout: moving from master to 2.3
ffd4621 (HEAD -> 2.3, master) HEAD@{8}: reset: moving to HEAD~
55966c5 HEAD@{9}: merge 2.3: Fast-forward
ffd4621 (HEAD -> 2.3, master) HEAD@{10}: checkout: moving from 2.3 to master
55966c5 HEAD@{11}: commit: 20210413停止2020040801和2020041101任务执行
ffd4621 (HEAD -> 2.3, master) HEAD@{12}: reset: moving to HEAD~
ceddc48 HEAD@{13}: checkout: moving from master to 2.3
ffd4621 (HEAD -> 2.3, master) HEAD@{14}: reset: moving to HEAD~
ceddc48 HEAD@{15}: merge 2.3: Fast-forward
c00e170 (origin/1.0) HEAD@{16}: checkout: moving from 2.3 to master
ceddc48 HEAD@{17}: commit: 20210413停止2020040801和2020041101任务执行
# @author : microfat
ffd4621 (HEAD -> 2.3, master) HEAD@{18}: checkout: moving from master to 2.3
c00e170 (origin/1.0) HEAD@{19}: clone: from https://github.com/xxxx/xxxx.git
可以看到ffd4621操作是reset,我们希望恢复至它之前的22d6484
然后:
>>> git reset --hard HEAD@{1}
# 或者
>>> git reset --hard 22d6484
HEAD is now at 22d6484 20210413停止2020040801和2020041101任务执行
一切恢复到reset之前的状态了