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
不常用
转载:

浙公网安备 33010602011771号