赞
踩
git reset
命令用于回退版本,可以指定退回某一次提交的版本。
简单了解下 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) |
--mixed
:默认参数。用于重置暂存区的文件,回到某次的提交,工作区保持不变。# 使用上一次提交重置暂存区
# 方式 01 - 使用 HEAD
$ git reset --mixed HEAD^ 或 git reset HEAD^
# 方式 02 - 使用 commitId
$ git reset --mixed <commitId> 或 git reset <commitId>
--soft
:用于回退到某个版本,暂存区和工作区都不会被改变。# 将提交记录回退一次,暂存区和工作区代码不变
# 方式 01 - 使用 HEAD
$ git reset --soft HEAD^
# 方式 02 - 使用 commitId
$ git reset --soft <commitId>
--hard
:撤销工作区中所有未提交的修改内容,将暂存区与工作区都重置到某个版本。# 使用最新一次提交重置暂存区和工作区
# 方式 01 - 使用 HEAD
$ git reset --hard HEAD^
# 方式 02 - 使用 commitId
$ git reset --hard <commitId>
执行 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。