使用git reset命令可回退到指定的commit,本质其实就是将HEAD指向分支的commit移动到了目标的commit上面
git reset命令有三种模式可供使用,分别是:
git reset --mixed(不加参数默认为此模式)
git reset --sort
git reset --hard
下面分别对这三种模式的使用做一一介绍
一 git reset --mixed(不加参数默认为此模式)
此种模式下repository区域内容与目标节点内容保持一致,暂存区索引也和目标节点内容保持一致,那么当前节点和目标节点之间的改变就会放在工作区域。
常用场景: 1.使用git reset (--mixed) HEAD 恢复当前版本的暂存区,修改内容重新放回到工作区。IDEA中revert操作就是使用git reset HEAD + checkout --file 命令还原工作区的修改。
2.git reset HEAD^1 + checkout --file 命令可以还原到上个版本的修改, 例如在上个版本中找回被删除的文件
3.可以用来合并目标节点和当前节点之间没有必要的提交
二 git reset --sort
此种模式下repository内容与目标节点保持一致,暂存区和工作区内容保持不变,当前节点和目标节点的改变放在暂存区
三 git reset --hard
此种模式下repository、暂存区、工作区的内容与目标节点内容保持一致,意思是说所有的内容将回退到目标节点,所以此命令使用时要慎重。