git reset

1、git reset [-q] [<tree-ish>] [--] <paths>…​

重置暂存区指定paths的文件与本地库某一commit保持一致,不影响工作区。如果不带paths参数,那么就代表重置当前目录的所有暂存区数据。 git reset <paths> 与git add <paths>是一对相反的操作。

git reset

2、git reset (--patch | -p) [<tree-ish>] [--] [<paths>…​]

重置暂存区指定paths的文件与本地库某一commit保持一致,用于交互式分块提交文件(只提交文件的部分内容)

3、git reset [<mode>] [<commit>]

上面带路径的reset用于指定某个文件路径下的修改,不带路径命令将整个工程的HEAD指向特定的状态,常用的有三种mode:

(1)不带mode默认值是--mixed ,代表修改暂存区和本地库到指定的状态,不改变工作区

git reset HEAD^(等价于git reset --mixed HEAD^) 。最近的三次提交可以这样表示 HEAD, HEAD^, and HEAD~2,以此类推最近的n次提交。 

git reset

(2)--hard代表同时修改工作区、暂存区,本地库到某一状态;

(3)--soft代表只修改本地库HEAD位置,不修改工作区和暂存区。

git reset