git reset 和 revert 的区别

git reset 和 revert 的区别

1. 前言

当我们在开发过程中,向 git 提交了一个记录,但后面觉得似乎提交的这个记录有些缺陷,我不想要它了,想要重置。可是重置git中存在两个命令,reset 和 revert,那么它们究竟有什么区别呢?什么时候我采用哪一个呢?

2. Reset

语法

git reset \--soft | --mixed | --hard
  • --soft 回退时保留源码,仅仅回退 commit,修改的文件仍然保存在暂存区,再次提交时只需要 git commit
  • --mixed(默认)回退时保留源码,回退 commit 同时修改的文件会置于 工作区,再次提交时需要 git add
  • --hard 回退时清除提交的源码(危险操作),源码和commit 都会回滚到某个版本

git reset 实际执行的是 HEAD的指向的回退,指定回到某个commit,那么HEAD指针就会回退到对应的 commit。这些操作都是本地执行的,如果想要推送到远程仓库(这是危险操作,因为会修改提交历史),那么需要在push的时候加上强制。

git push --force 

3. Revert

语法

git revert

git revert 和 reset 最本质的区别为两点:

  1. revert 使用一个新的commit 来回滚你希望回滚的commit, reset 是直接HEAD 指向回退的commit
  2. revert 只会回滚你希望回滚的哪一个commit的操作,不会影响其他的,reset 由于指针回退了,因此这个commit 之后的commit都会消失。

当然,我们一般的使用时,如果已经push了,使用revert,如果没有,就是用reset

  • 15
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangpaopao0609

看星空看日落不如看我的眼眸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值