Git回滚到指定版本的方法:reset、revert

开发过程中,难免遇到提交代码之后想撤销提交操作,让程序回退到提交前的样子,Git版本回滚通常有两种解决方法:回退(reset)、反做(revert)。
方法一:git reset
原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本。适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
例如当前在版本三,想回退到版本一,同时丢弃掉版本二和版本三的所有改动,可使用reset操作。Git回滚到指定版本的方法:reset、revert_第1张图片
reset之后当前版本变成版本一,同时原本版本二和版本三的提交都被清除了。
Git回滚到指定版本的方法:reset、revert_第2张图片
方法一reset的操作步骤:

  1. 使用git log查看版本号
git log

Git回滚到指定版本的方法:reset、revert_第3张图片

  1. 使用“git reset --hard 目标版本号”命令将版本回退。
    举例我要回退到9feb83df6db8b132004325ab03377b2088cba540这个提交的版本:
git reset --hard 9feb83df6db8b132004325ab03377b2088cba540

在这里插入图片描述

  1. 回退完之后可用git log再检验当前版本。
    在这里插入图片描述

  2. 使用“git push -f”提交更改:

git push -f

因为我们回退后的本地库HEAD指向的版本比远程库的要旧,此时如果用“git push”会报错。如下:
Git回滚到指定版本的方法:reset、revert_第4张图片
改为使用 git push -f 即可完成回退后的提交。
Git回滚到指定版本的方法:reset、revert_第5张图片
方法二:git revert
revert操作,适用于撤销某一版本,而保留该版本之后的其他版本提交。适用场景:例如某需求先后进行过第一、第二、第三次版本提交之后发现第二个版本有问题,需要撤销第二个版本的操作,同时保留第三次版本的提交,可使用git revert操作。
操作步骤:

  1. git log 查看之前的操作历史,找到要还原的commit,例如。
    Git回滚到指定版本的方法:reset、revert_第6张图片

  2. 执行git revert -n命令即可回复某次提交
    在这里插入图片描述

  3. 注意:如果撤销的是merge操作则需要提供 -m 参数
    例如:git revert e2fa3afa69b1021a89203c4e70d28e52c9cfd6fa -m 1

你可能感兴趣的:(git,开发工具,git)