分支游标master
1. git reset --hard HEAD^
HEAD^当前版本的父版本(代表了HEAD的父提交),引用refs/heads/master 就好像一个游标,在有新的提交发生的时候指向了新的提交。
Git中提供的git reset 命令将“游标” 指向了任意一个存在的提交ID.
2. git reset --hard commitID
重置命令不仅可以重置到前一次提交,而且还可以直接使用提交ID重置到任何一次提交。
重置命令(git reset)是Git最常用的命令之一,也是最危险最容易误用的命令。git reset 命令的用法:
用法一:git reset [-q] [<commit>] [--] <paths>
用法二:git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
上面列出了两种用法,其中<commit> 都是可选项,可以使用引用或提交ID,如果省略<commit> 则相当于使用了HEAD
的指向作为提交ID.
1. 第一种方法:在命令中包含路径<paths>。不会重置引用,更不会改变工作区,而是用指定提交状态(<commit>)下的
文件替换暂存区中的文件。git reset HEAD <paths> 相当于取消之前执行的git add <paths> 命令时改变的暂存区。
2. 第二种方法:会重置引用。根据不同的选项,可以对暂存区或工作区进行重置。
命令格式:git reset [--soft | --mixed | --hard] [<commit>]
1)参数 --hard:
a.替换引用的指向。引用指向新的提交ID
b. 替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。
c. 替换工作区。替换后,工作区的内容变的和暂存区一致,也和HEAD所指向的目录树内容相同。
2)参数:--soft:
只更改引用的指向,不改变暂存区和工作区。
3)参数:--mixed(默认参数),如git reset <commit>
更改引用的指向及重置暂存区,但是不改变工作区。
4) git reset
仅用HEAD指向的目录树重置暂存区,工作区不会受到影响,相当于将之前用git add 命令更新到暂存区的内容
撤出暂存区。引用页未改变,因为引用重置到HEAD相当于没有重置。
5) git reset HEAD
同上
6) git reset -- filename
仅将文件filename的改动撤出暂存区,暂存区中其他文件不改变。相当于对命令 git add filename的反向操作。
7) git reset HEAD filename
同上
8)git reset --soft HEAD^
工作区和暂存区不改变,但是引用向前回退一次。当对最新提交的提交说明或提交的更改不满意时,撤销最新的提交以便
重新提交。
9)git reset HEAD^
工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。
10) git reset --mixed HEAD^
同上
11)git reset --hard HEAD^
彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。
浙公网安备 33010602011771号