Git中reset和revert的区别

Git中是有“后悔药”的,当我们想回退到之前的状态时,总有办法可以做到。这里来比较一下两个常见的回退命令:git resetgit revert

一、reset

git reset 命令实际上有诸多选项,这里仅以--hard为例,即git reset --hard。假设目前提交情况如图:
在这里插入图片描述
目前 HEAD 指针指向 2ab7 的commit,即目录的状态位于 2ab7;当运行命令git reset --hard e02f时,HEAD 指针则移动到对应位置:
在这里插入图片描述
所以此时目录的状态随即改变,位于 e02f 的commit id处。

二、revert

假设目前提交状况如下:
在这里插入图片描述
现在运行git revert,那么 git 会撤销上一次的修改,并把此次的撤销做一次提交,也就是 HEAD指针依旧会向前推进:
在这里插入图片描述
从文件的角度来说,此时文件的内容,和 e02f 处的内容一致,跟 git reset --hard带来的结果完全一样。但 git 本身没有后退,而是新创建了一个提交。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值