git reset深入理解

版权声明:将遇到的问题,记录下来,方便自己也方便大家。 本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y491887095/article/details/79486328

git reset 一直用的不太好,今天就把git reset深入学习一下。

git reset 字面意思为重置

经常用于将已经存放到暂存区,或者工作区的代码取出来,返回到工作区。

如果已经使用 git add . 将代码提交到了暂存区。这时候,我们可以使用git reset :

这提示将会把暂存区的数据,返回到工作区。

如果已经使用git commit -m “message” 将代码提交到了本地仓库。这时候,我们可以使用 git reset HEAD

git reset 有三个参数 soft | 默认的mixed | hard

默认的mixed参数:(特点:直接回退到工作区)

回退文件:


有的时候,我们通过git add . 将文件提交到了暂存区,但是我们有不想commit,想撤回。可以使用
git reset fileName将文件移回到工作区。

也可以不加任何参数,用git reset将整个暂存区的文件恢复到工作区。

$ git reset
Unstaged changes after reset:
M       web.html

回退版本:


版本的标记

~和^都可以标记那个版本

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

重置到那个版本

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

即将已经存到本地仓库中的数据,撤销,然后放到工作区。


soft参数:(特点:将某个版本回退到暂存区)

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

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git reset --soft  HEAD~1

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   web.html
        modified:   wucl.txt

hard参数:(特点:彻底的丢弃代码)

git reset –hard HEAD~1 意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本

就是将本地仓库中的代码,切换到上一个版本。当前版本删除,同时本地暂存区、工作区都回到上一版本。

如果使用git reset –hard HEAD,并没有

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git add .

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git commit -m "xxx"
[master aa11939] xxx
 2 files changed, 2 insertions(+)

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git reset --hard HEAD^
HEAD is now at d105688 Merge pull request #1 in FZ/trygit from feature/zhaowei to master

Administrator@BiuBiu MINGW64 /e/code/trygit (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean


参考文章

猜你喜欢

转载自blog.csdn.net/y491887095/article/details/79486328