Git: 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^

然后执行

$ git log

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

二、git revert

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

$ git revert  --hard HEAD

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

$ git log

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


总结

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

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

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

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值