一句话概括
重置HEAD指针到指定的状态。
hard 模式
命令:
git reset --hard [HEAD pointer]
- HEAD指针:将HEAD指针指向指定的位置
- 暂存区:不保存当前暂存区的修改和修改HEAD指针带来的变化
- 工作区:工作区也更新为HEAD指针位置的状态。
或者说,啥都不要给我留了,直接给我更新到那个状态。
这会导致未提交的内容和要更新的HEAD指针后面的内容丢失。
soft 模式
命令:
git reset --soft [HEAD pointer]
- HEAD指针:将HEAD指针指向指定的位置
- 暂存区:将修改HEAD指针带来的变化加入到暂存区
- 工作区:不变。
这种模式下不会有任何信息的丢失。
mixed 模式(默认)
- HEAD指针:将HEAD指针指向指定的位置
- 暂存区:清空。
- 工作区:将修改的HEAD指针带来的变化加入到暂存区。
REF:
[1] Git Reset 三种模式
补充:git commit --amend
用来修改最后一次commit的内容