参考了这个博主的方法:https://blog.csdn.net/yxlshk/article/details/79944535#commentsedit 第一种方法是行得通的,第二种方法博主的解释有点问题,容易让人误解,这位大哥的评论很准确:
总结两种方法:
(1)git reset方式:
git reset --hard 版本3的版本号 //执行完这个之后,版本变成了“加了cc”,并且版本4和版本5没有了
git push -f //此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧
(2)git revert方式
revert就是反转的意思,就是把某个版本的提交反转,比如上面的例子,我想把版本还原到加了cc的样子,就要把“加了dd”反转,然后把“加了ee”反转,于是执行“git revert -n 版本4的版本号”再执行“git revert -n 版本5的版本号”,注意的是这个时候版本4和版本5的内容还是存在的(git reset直接丢弃了版本4和版本5的提交记录)如图;
git revert -n 版本4版本号
git revert -n 版本5版本号
git commit -m "还原到版本3"
git push