一、使用場(chǎng)景
在使用git提交代碼的過(guò)程中,難免會(huì)出現(xiàn)失誤,而我們補(bǔ)救的方法就是撤銷,而常用的撤銷無(wú)非就兩個(gè)命令,reset和revert,那他們兩個(gè)如何使用以及區(qū)別是什么呢?
二、使用方法

1.png
先上一張圖片。
在提交代碼的過(guò)程中,無(wú)非就是add、commit和push,但不管是哪一步,都有可能出現(xiàn)提交錯(cuò)誤的情況,下面分別說(shuō)一下每一步的撤銷操作。
2.1.撤銷add之后的撤銷
git reset HEAD filename
2.2.撤銷commit之后的操作
2.2.1.從本次倉(cāng)庫(kù)回退到工作區(qū),保留工作區(qū)修改內(nèi)容,并清空緩存區(qū)內(nèi)容
git reset --mixed //后面的--mixed可省略,默認(rèn)就是此方式。
2.2.2.從本地倉(cāng)庫(kù)回退到緩存區(qū)
git reset --soft
2.2.3.從本地倉(cāng)庫(kù)回退到工作區(qū),不保留工作區(qū)內(nèi)容,并清空緩存區(qū)內(nèi)容
git reset --hard //慎用
2.3.撤銷push之后的操作
2.3.1.找到push之前commit提交時(shí)對(duì)應(yīng)的commitid,一般只需前六位即可。
git revert commitid
2.3.2.再次push
git push origin branch
2.4.再用一張圖總結(jié)一下

2.png
4.reset和revert的區(qū)別
reset的本質(zhì):reset的功能雖然是起到了撤銷commit的作用,但實(shí)質(zhì)上它是將HEAD的指向移動(dòng)了位置。如下圖。

3.png
revert:revert是一次新的commit,HEAD會(huì)繼續(xù)向前執(zhí)行。如下圖。

4.png