当前位置:   article > 正文

Git 笔记 - git reset_git reset会有记录吗

git reset会有记录吗

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

01 前期了解之 HEAD

简单了解下 HEAD :它类似于指针,指向当前所在分支提交至仓库的最新一次的 commit。

用法含义
HEAD = HEAD~0 = HEAD^0表示当前提交
HEAD~ = HEAD~1 = HEAD^表示上 1 次提交
HEAD~~= HEAD~2 = HEAD^^表示上 2 次提交
HEAD{n个~} = HEAD~n = HEAD{n个^}表示上 n 个提交(n >= 0)

02 实际用法之 reset

  • --mixed :默认参数。用于重置暂存区的文件,回到某次的提交,工作区保持不变。
# 使用上一次提交重置暂存区

# 方式 01 - 使用 HEAD
$ git reset --mixed HEAD^  或  git reset HEAD^
# 方式 02 - 使用 commitId
$ git reset --mixed <commitId>git reset <commitId>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • --soft :用于回退到某个版本,暂存区和工作区都不会被改变。
# 将提交记录回退一次,暂存区和工作区代码不变

# 方式 01 - 使用 HEAD
$ git reset --soft HEAD^
# 方式 02 - 使用 commitId
$ git reset --soft <commitId>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • --hard :撤销工作区中所有未提交的修改内容,将暂存区与工作区都重置到某个版本。
# 使用最新一次提交重置暂存区和工作区

# 方式 01 - 使用 HEAD
$ git reset --hard HEAD^
# 方式 02 - 使用 commitId
$ git reset --hard <commitId>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • mixed、soft、hard 对比效果图如下:

03 reset 后如何恢复

执行 reset 命令之后,HEAD 会指向历史的某个 commit ,但后面的 commit 其实依然存在的,只是看不到了。那么问题来了,如何恢复 reset 掉的 commit 呢?答案是:使用 git reflog + git reset,即用 reflog 查到操作记录的 id,再使用 reset 回到该 id!

git log:查看所有提交过的信息,不包括回退的提交;
git reflog: 查看所有分支的所有 git 操作记录,包括回退的提交;

实例如下:

# 回退上一次的提交记录
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/794720
推荐阅读
相关标签