git reset 进阶
命令
git reset [--hard | soft | mixed | merge | keep ]
作用
将当前分支重设到指定的HEAD
,即最新提交)。并且根据[mode]参数能指定重置(reset)index
或是 working directory
。
mode详解:
1.--soft
-
版本库(
repository
):HEAD 指向指定 -
暂存区(index):不重置到指定
,这次 之后的所有变更都撤销到此 -
工作区(
working directory
):无变化 -
eg
当前分支是 master
,
执行:
git reset --soft HEAD~1
执行后:
①版本库:HEAD指向
执行:
git status
可以看到
2.--mixed(默认模式)
-
版本库:HEAD 指向指定
-
暂存区(index):重置到指定
-
工作区(working directory):这次
之后的所有变更都撤销到此 -
eg
当前分支是 master
,
执行:
git reset --mixed HEAD~1
执行后:
①版本库:HEAD指向
执行:
git status
可以看到
3.--hard
-
版本库:HEAD 指向指定
-
暂存区(index):重置到指定
-
工作区(working directory):重置到指定
-
注意:工作区未add的修改和暂存区未commit的修改,全部丢弃。(如果想回到最新提交可用 git reflog 查看commit号 然后再利用本命令恢复)
-
eg
当前分支是 master
,
执行:
git reset --hard HEAD~1
执行后:
①版本库:HEAD指向
执行:
git status
可以看到工作空间是干净的
4.--merge
不常用
5.--keep
不常用
转载: