当前位置:   article > 正文

Git: git reset 与 git revert_git reset和git revert

git reset和git revert

前言

Git的命令行中,版本回退有 git reset 和 git revert 两种,以下是两种版本回退的介绍以及区别。


一、git reset

先看下面一张图:
在这里插入图片描述
从图中我们可以理解为,git reset 在进行版本回退后,它是回滚到回退后的commit-id那个版本,也就是我们进行回退后的那个版本,就如图中,我们使用 gti reset 命令后,我们会从commit 3 回退到 commit 1 ,而在commit 1 之后提交的所有记录都会被删除,并且它不会产生新的commit记录。
举个例子:
这个是写的一个例子
在这里插入图片描述

此时,我执行版本回退的命令,

$ git reset --hard HEAD^
  • 1

然后执行

$ git log
  • 1

可以看到回退到 “2-提交”,
在这里插入图片描述
而我之前的 “2-bbbb”,那条记录是看不见的,也就是,在执行完 git reset 后,“2-bbbb" 那条记录被删除了。

二、git revert

在这里插入图片描述
git revert 和 git reset 就不同,revert是撤销上次的提交,但是,它会再生成一条新的记录。
还是拿个例子来说一下
在这里插入图片描述
此时,如果我执行:

$ git revert  --hard HEAD
  • 1

就会出现,如下图图示:
在这里插入图片描述
按下键盘的 i 键,我们就可以在里面进行输入,在这里我们需要输入注释,输入注释后,按下 Esc 键,然后在按下 :键,再按下 wq 就可以退出。
此时,在执行

$ git log
  • 1

可以看到
在这里插入图片描述
图中可以看出,我们是想要回退到 ”2-add“那个版本,但是在执行 git revert 命令后,我们增加了一条记录,而且,我们输入的注释也在记录中可看见。


总结

git reset 是回滚到对应的commit-id,相当于是删除了commit-id以后的所有的提交,并且不会产生新的commit-id记录

git revert 是反做撤销其中的commit-id,然后重新生成一个commit-id。本身不会对其他的提交commit-id产生影响

虽然,git reset 和 git revert 执行后记录不一样,但是,执行完命令后,在工作区展示的内容是一样的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/1005013
推荐阅读
相关标签
  

闽ICP备14008679号