Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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硬性