上一節我們講了通過 git checkout 命令,將 Modified files 撤銷。
今天來講一下 reset 命令。
通過 man git reset 可以看到這樣一張圖。只要理解了這張圖,那麼對 git reset 還有它的三個參數也就是 soft mixed hard 也就掌握了。
以第一條 --soft 簡單說明一下:
左邊是當前的git庫裏的情況:
工作區裏的內容是A
暫存區的內容是B
HEAD提交中的內容是C
而希望重置回的目標提交中的內容是D
執行 git reset --soft target 之後:
工作區裏的內容是A
暫存區的內容是B
HEAD提交中的內容是D
也就是說 --soft 不改變 工作區和暫緩區
同理, --mixed 不改變 工作區
大家可以結合下面這張圖做一些實際操作,加深理解。
其中 HEAD 表示當前提交
HEAD^ 表示當前提交的上一個提交.
比如下圖中,當前是處於 CommitB ,那麼 HEAD 表示 CommitB ,而 HEAD^ 就是 CommitA.
(綠色框中 HEAD:a.txt->abc 表示的是 版本庫中有一個 a.txt 文件,其內容是 abc)