git reset命令
reset 还原分支
git reset <HashA>
//把当前分支还原到某个commit节点上
git reset HEAD~1
//撤销上一次commit,也可以用 HEAD^ 简写
git reset HEAD~2
//撤销前两次commit,也可以用 HEAD^^ 简写
- 这里要理解 HEAD 就是当前分支(比如master)的简写
reset 的三种模式
三选一
-
默认模式
--mixed- 特征
- 原有的工作区改动 得到保留
- 原有的暂存区改动 被扔回工作区
- 两个分支间的差异,会放进工作区
- 一句话
- 差异 和 原有的 都扔回工作区,mixed混合起来
- 特征
-
软回滚
--soft- 特征
- 原有的工作区改动 得到保留
- 原有的暂存区改动 得到保留
- 两个分支间的差异,会放进暂存区
- 一句话
- 差异放到暂存区,原有的都保持不变,soft软性
- 特征
-
硬回滚
--hard- 特征
- 原有的工作区改动 不保留
- 原有的暂存区改动 不保留
- 两个分支间的差异,直接无视
- 一句话
- 差异无视,原有的都清掉,hard硬性
- 特征