git reset 用法


git命令博大精深。。。GIT reset命令作为回退命令有可以分为不同的级别

首先我们来看几个术语

  • HEAD
  1.     HEAD^ 上一次提交
  2.     HEAD^ ^ 上一次的 上一次的提交(倒数第三次)
  3.     HEAD^^^ 倒数 第四次的 提交

这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交

  • Index

index也被称为staging area(暂存区),是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit

  • Working Copy

working copy代表你正在工作的那个文件集

名称含义
工作区 写代码的地方
暂存区 git add 到的地方
版本库 git commit 到的地方

git reset (- -mixed) HEAD~1

  错误commit后,撤销commit和add,工作区内容不变


回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态(工作区),不影响原来本地文件(未提交的也     
不受影响)

git reset - -soft HEAD~1 

  错误commit后,仅撤销commit,暂存区、工作区内容不变

回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)

git reset - -hard HEAD~1 

  错误commit之后,想恢复到某个版本库的代码(暂存区,工作区均变化)

回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换

原文地址:https://www.cnblogs.com/liusouthern/p/9842426.html