欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Git 常用命令 --- git reset命令

程序员文章站 2022-06-11 09:57:28
...

git reset 的作用为:将文件从暂存区回退到工作区;版本回退。

 

1. git reset HEAD filename

回退文件,将文件从暂存区回退到工作区。也可以使用 git reset filename。

 

2. git reset HEAD^

回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式。

如果HEAD指针指向的是master分支,那么HEAD还可以换成master;

如果知道特定的commit-id,那么还可以直接使用 git reset commit-id;

如果不加参数,实际上使用的是默认的参数mixed。

 

我们可以使用git log -3来查看最近三次的提交,形如 git log -n ,n就是想要输出的个数,可以看到commit-id,author,date等信息。

 

3. soft参数:git reset --soft HEAD~1

表示将版本库软回退1个版本,软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区。

 

4. 默认的mixed参数:git reset HEAD~1

表示将版本库回退1个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段。

 

5. hard参数:git reset --hard HEAD~1

表示将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。

 

注意:soft参数与默认参数都不会修改工作区代码,只有hard参数才会修改工作区代码。

 

6. git reset 配合 git commit 追加提交

什么时候会用到追加提交,追加提交有什么优点?

1)未merge的版本库中的提交不满意,希望修改其中的某些信息,如代码,如提交描述等,可以使用git commit --amend进行追加提交,优点是不会产生新的commit-id 

2)修改方法:如果想修改的不是最新一版的提交,那么可以通过git reset --hard HEAD~n将版本回退到需要的那版,如果想修改代码,那么直接在工作区进行代码修改,修改完之后git add到暂存区而不必再git pull,而如果是修改其他信息,那么可以直接使用git commit --amend进行追加提交,git commit --amend命令会打开一个编辑器,可以修改其中的信息,如果修改了代码而不修改其他信息,则直接 Ctrl + X离开编辑器,再git push推送到远程服务器,如果也修改了其他信息,那么需要先使用Ctrl + M写入信息,再Ctrl + X离开编辑器,再推送。

 

7. git reset -h | git reset --help 

查看帮助