Git重置(reset)

2018-09-02  本文已影响0人  ShukeZheng

reset是Git中常用命令之一,主要是用来撤销暂存区或者回退版本。reset不会改变HEAD的指向,之前指向master,操作完依然指向master。reset改变的是HEAD所指向的游标。这个要和checkout区分开来,checkout主要用来改变HEAD本身,例如切换分支等。

git reset [-q] [<tree-ish>] [--] <paths>...

参数

<tree-ish>如果不提供的话默认是HEAD所指向的提交(就是当前分支的最后一个commit),也可以通过id指定某个提交。
<paths>指的是文件路径。
-- 用来分隔commit名和文件路径的,防止提交名和路径名冲突。

用法

这条命令执行的效果是用<tree_ish>来覆盖暂存区,相当于git add的反操作。

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

参数

--soft只改变版本库,工作区和暂存区不动
--mixed改变版本库和暂存区
--hard改变版本库,暂存区,工作区
--merge 略,暂时没接触到
--keep略,暂时没接触到

这个命令的执行效果是把分支回退到指定的commit上。至于暂存区和工作区是否变化,取决于给的参数。

第一种和第二种方法最大区别在于是否提供<paths><paths>指的是文件路径。
从功能上看,第一种只改变暂存区,第二种是一定会改变分支指针的指向(俗称回退)。

上一篇 下一篇

猜你喜欢

热点阅读