來自:https://www.jianshu.com/p/c2ec5f06cf1a
上面這篇文章總結的很到位,本質上reset是移動HEAD指針,他做了2件事情:
1、從某個commit移動到之前的某個cimmit節點
2、處理工作空間、暫存區、倉庫這3處的變化
- --soft:将指針移動之間的變化放進stage(清理送出記錄可以使用一下)
- --mixed:将指針移動之間的變化放進worktree,并且順帶把stage區的内容也放進worktree(後悔的時候)
- --hard:将指針移動之間的變化、stage、worktree的内容統統扔掉(一般不用)
這張圖檔表的十分精準,紅色箭頭的尾部表示内容的起點,頭部表示内容的去向,箭頭身體部分所經過的地方會裹帶這這部分内容一起行走,像滾雪球一樣。這樣了解就和上方了解一緻了,下方我又進行了一步優化,更加形象。
