git reset,reset当前HEAD到一个指定的状态。
语法:
git reset [-q] [<tree-ish>] <paths>...
git reset (--patch | -p) [<tree-ish>] [<paths>...]
git reset [ --soft | --mixed [- N] | --hard | --mrege | --keep ] [-q] [<commit>]
描述
git reset [-q] [<tree-ish>] <paths>...
reset index中所有paths路径到tree-ish状态。是git add <paths>的相反操作。如果tree-ish省略,则为当前HEAD。
git reset -p [-q] [<tree-ish>] <paths>...
手动选择模式,和git add -p相对。
git reset [<mode>] [<commit>]
将当前分支的头reset到<commit>,可以更新暂存区(reset到<commit>,以及工作区(依赖于mode)。如果mode没指定,默认为--mixed。
mode可以是下列值:
--soft
不更新index和工作区。
--mixed
更新index,不更新工作区。
--hard
更新index和工作区。所有工作区的改变将丢失。
--merge
更新index,更新<commit>和当前HEAD不同的文件,但是保留这些index和工作区不同的文件。如果<commit>和<HEAD>不同的文件,有未暂存的改动,reset将取消。
--keep
更新index,更新工作区中<commit>和HEAD不同的文件,如果这个文件有本地改动,reset将取消。