1.版本回退
git log
选择想要回退的版本,比如commit 5e26444f5355438b61b6f4bd047b3787c1a252df
git reset --hard 5e26444f5355438b61b6f4bd047b3787c1a252df
2.回到未来
git reflog
这个命令可以看到本地代码当前所在版本及远程库origin/master所在版本,如果想恢复到和远程库版本一致,选择相应版本reset即可,
$ git reflog
ea1dc64 (HEAD -> master) HEAD@{0}: reset: moving to ea1dc64
d1361a7 (origin/master, origin/HEAD) HEAD@{1}: reset: moving to d1361a7
6e127ff HEAD@{2}: reset: moving to 6e127ff
d1361a7 (origin/master, origin/HEAD) HEAD@{3}: pull: Fast-forward
ea1dc64 (HEAD -> master) HEAD@{4}: reset: moving to ea1dc64043dd470447403c3ebb733ff4733eb7f4
d1361a7 (origin/master, origin/HEAD) HEAD@{5}: commit (merge): dwad
5e26444 HEAD@{6}: commit: modify
ea1dc64 (HEAD -> master) HEAD@{7}: commit: new 1.go
6e127ff HEAD@{8}: commit (merge): m2
c3bf959 HEAD@{9}: commit: m 2
7917385 HEAD@{10}: commit: add txt
c1fb2a1 HEAD@{11}: clone: from https://github.com/Altruiste1/learnning_git.git
这里最新版本commitid为d1361a7
因此再使用一次git reset 就好了
$ git reset --hard d1361a7
HEAD is now at d1361a7 dwad
Administrator@SD-20190724ATCI MINGW64 /g/learnning_git2 (master)
$ git reflog
d1361a7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to d1361a7
c1fb2a1 HEAD@{1}: reset: moving to c1fb2a1
d1361a7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: reset: moving to d1361a7
ea1dc64 HEAD@{3}: reset: moving to ea1dc64
d1361a7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{4}: reset: moving to d1361a7
6e127ff HEAD@{5}: reset: moving to 6e127ff
d1361a7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{6}: pull: Fast-forward
ea1dc64 HEAD@{7}: reset: moving to ea1dc64043dd470447403c3ebb733ff4733eb7f4
d1361a7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{8}: commit (merge): dwad
就可以了