一、使用场景
在使用git提交代码的过程中,难免会出现失误,而我们补救的方法就是撤销,而常用的撤销无非就两个命令,reset和revert,那他们两个如何使用以及区别是什么呢?
二、使用方法
1.png
先上一张图片。
在提交代码的过程中,无非就是add、commit和push,但不管是哪一步,都有可能出现提交错误的情况,下面分别说一下每一步的撤销操作。
2.1.撤销add之后的撤销
git reset HEAD filename
2.2.撤销commit之后的操作
2.2.1.从本次仓库回退到工作区,保留工作区修改内容,并清空缓存区内容
git reset --mixed //后面的--mixed可省略,默认就是此方式。
2.2.2.从本地仓库回退到缓存区
git reset --soft
2.2.3.从本地仓库回退到工作区,不保留工作区内容,并清空缓存区内容
git reset --hard //慎用
2.3.撤销push之后的操作
2.3.1.找到push之前commit提交时对应的commitid,一般只需前六位即可。
git revert commitid
2.3.2.再次push
git push origin branch
2.4.再用一张图总结一下
2.png
4.reset和revert的区别
reset的本质:reset的功能虽然是起到了撤销commit的作用,但实质上它是将HEAD的指向移动了位置。如下图。
3.png
revert:revert是一次新的commit,HEAD会继续向前执行。如下图。
4.png