場景
- 假設(shè)要刪除剛剛提交到feature_b分支的commit。
步驟
- 切換到feature_b分支
-
選中要刪除的commit節(jié)點的前一個節(jié)點,執(zhí)行「重置」操縱,如下圖:
image.png -
在彈出的框中,我們這樣選擇先
image.png -
我們可以看到,雖然commit被刪除了,但其實改動還在,我們只需要丟失本地改動就好了
image.png -
剛才其實還有其他選項,比如選擇「強(qiáng)行合并」,那么那個commit直接就被丟棄了,不會像剛才那樣,產(chǎn)生Uncommitted changes,還需要手動丟棄改動
image.png - 其實還有一種選項,叫「軟合并」,這種介于「混合合并」和「強(qiáng)行合并」中間,即:改動還在,但你改動被
git add .了
image.png
「軟合并」效果如下:
image.png - 以上操作(各種reset),如果一開始已經(jīng)push到remote了,還需要
git push --force -
其實還有一種操作,叫做「提交回滾」,通過revert來實現(xiàn)的
image.png -
操作結(jié)果如下,是通過一次新的commit來把錯誤的commit抹掉
image.png







