git revert和git reset的区别

本文详细解释了Git中revert与reset命令的区别及使用场景,通过实例对比了这两种撤销操作的不同之处,包括如何撤销特定的提交,以及这些操作对工作目录的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
git log可以看到:
commit1:add test1.c
commit3:add test3.c
git status 没有任何变化
如果换做执行git reset --soft  HEAD~1后,运行git log
commit2: add test2.c
commit1: add test1.c
运行git status, 则test3.c处于暂存区,准备提交。
如果换做执行git reset --hard HEAD~1后,
显示:HEAD is now at commit2,运行git log
commit2: add test2.c
commit1: add test1.c
运行git st, 没有任何变化
另外:
git revert <commit log string>是撤消该commit,作为一个新的commit。

reset命令有三种执行方式:
1.git reset --mixed :此为默认方式。它会回退到某个版本,只保留源码,回退commit和index信息
2.git reset --soft:回退到某个版本,只回退coomit信息,不会恢复index信息,如果还要提交,直接commit即可
3.git reset --hard:彻底回退到某个版本,本地的源码也会变为该版本的内容


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值