git reset 与 git revert

发现git帮助中居然没有git revert(如下图),现就git reset 与git revert的用法做个小节。

这里写图片描述

reset

reset是指将当前head的内容重置,不会留任何痕迹。
git reset --hard HEAD~3
会将最新的3次提交全部重置,就像没有提交过一样。
根据--soft --mixed --hard,会对working tree和index和HEAD进行重置。
那么问题来了,使用git reset后如何恢复被清除的版本呢:

1.使用git reflog获得commit时的Id,如下图:

这里写图片描述

2.使用git reset id就可以恢复了,和 git revert commitSHA-1类似,如下图:

这里写图片描述

revert

revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存。
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
* git revert HEAD                  撤销前一次 commit
* git revert HEAD^               撤销前前一次 commit
* git revert commitSHA-1 (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容

另外,使用git reset在merger的过程中有时还会出现冲突,且把历史操作信息删除了;所以,建议用git revert比较好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值