git 版本(commit) 回退 -- 使用git reset 指令

 

刚刚提交了三个commit, git reflog显示如下:

 

 

 

最后一个commit在文件末尾加了一行:v3,以此类推:

 

 

 

下面,使用git reset --hard commitID来进行commit回退:(应该回滚的时工作区的commit版本吧)

1)回到最后一个commit之前,即回到v2后的版本:

 git reset --hard fe0b7d6

( 亦可以使用快捷的方式: git reset --hard HEAD ^   ,^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:

git reset --hard HEAD~100, 个人建议使用~,网上有人说经常遇到^的符号问题。  )

该指令执行后:

 

 

 

 

 

 虽然回退了,执行git relog之后,v3的commit记录还是在的。然后,可以继续执行git reset --hard commitID,可以回滚到任何一此commit的状态。

 

2)返回v3的commit:

 git reset --hard a018ae3

 

注意:

 我遇到的一个问题:执行git reset --hard commitid退到v2的状态,然后执行git reset --hard commitid退到v1的状态,然后执行git reset --hard commitid退到v3的状态,, 然后,再执行的话,不管执行git reset --hard commitid还是git reset --hard HEAD~100都会出现问题如下问题,原因还未查到。查到之前,还是简单操作比较好,先只用git reset --hard HEAD~100这种指令,然后,只在回到最后一个commit时候,用git reset --hard commitid.

 

 

 

git reset --soft,--hard的区别

https://www.jianshu.com/p/c6927e80a01d

 

 

 

ref:

https://blog.csdn.net/zt1519/article/details/81713748

 

posted @ 2019-09-28 11:11  JadeCicada  阅读(2333)  评论(0编辑  收藏  举报