女猿1024互联网科技

git 版本回退(reset&revert)

2020-04-08  本文已影响0人  代艳霞

当我们项目发布上线发现有问题,又无法立马解决,需要版本回退的时候,应该如何处理,选择revert还是reset。最怕版本回退有冲突,经历几次及测试以后,终于弄清楚他们之间的差别,下面就简单来说一下他们的使用方法及差别

reset

首先我们提交三次代码:

git提交三次

页面代码如下:

git三次提交内容

现在执行reset命令,把代码回退到4/7第2次提交之前的状态,命令如下:

git reset --hard HEAD^
reset命令 reset提交记录被删除
git commit -a -m"reset以后提交"
git push
gitPush
 git push -f
force强推

使用这些选项在目标环境中非常有用,例如git reset --hard <commit sha1 | reference>。 这会覆盖您尚未提交的任何本地更改。 实际上,它会重置(清除)staging area,并使用使用commit的内容填充working directory 。 在使用hard选项之前,请确保这是您真正想要做的事情,因为该命令会覆盖任何未提交的更改。

revert

同样我们先提交3个版本:

revert之前提交3次

回退到上一个版本,命令行如下:

git revert HEAD
vim进入编辑模式 revert说明 vim退出 revert说明提交成功 revert提交记录存在 revert成功

通过,亲自操作git resetgit revert我们看到了它们两个的区别,git reset适合回退本地代码,比如,项目我们修改很多以后,发现想回到最开始的版本。而git revert适合,项目上线以后,发现有问题,需要版本回退,这个时候,可以基于之前的版本,再创建一个新的提交,重新发布就可以,而且之前提交的记录都存在,而git reset是重置的意思,当我们执行了这个命令以后,不但代码回退到指定的版本,之前的提交记录也是会给清除,所以git reset一定到慎重使用,因为它会造成不可回退的效果,除非我们知道之前的提交的哈希值才可以。

上一篇下一篇

猜你喜欢

热点阅读