背景:
公司新人不懂git reset命令,索性就寫寫筆記。
reset簡介:
重置
主要功能:回退到指定版本。
回退版本,表示舊數據將會git工作區域發生變動。
首先我們先了解git共有3個工作區域
- 1、repository :倉庫,執行commit后產生記錄,會有commit id;
- 2、index\stage:暫存,執行 git add . 就會添加到stage區域
- 3、working free:當前工作區域,當新增、修改文件時候,默認就是working free.
當代碼回退的時候,git會根據reset模式將代碼退到到指定工作區域
其次我們要了解reset共有3種模式。
- 1、hard
- 2、soft
- 3、mixed
以下將一一解釋:
git reset --hard 'commit id'
該指令將項目回退到指定版本,回退的版本數據將會repository移除,不會在在stage、working free 目錄保存任何數據。
git reset --soft 'commit id'
該指令將項目回退到指定版本,回退的版本數據會將會從repository移動到stage區域里,如果需要提交,只需要重新commit一次即可。
git reset mixed 'commit id'
git reset 'commit id' = git reset mixed 'commit id'
git reset 默認就是 mixed
該指令會將項目回退到指定版本,回退的版本數據會從repository移動到working tree里。
如果當前狀態有將部分數據放到stage里,那我們執行 git reset 后,會將處于stage里的數據將一起被移動到working free里。