当前位置:   article > 正文

【git】使用 git reset 回退本地的修改_git reset 可以只reset本地的么

git reset 可以只reset本地的么

一、git 概念
工作区(working):相当于我们本地的文件系统。
暂存区(staging):通过 git add 命令,将本地工作区的文件提交至暂存区。
本地仓库(local repo):通过 git commit 命令,把暂存区的所有文件提交至本地仓库。
远程仓库(remote repo):通过 git push 命令,把本地仓库的所有文件提交至远程仓库。

HEAD:通俗的讲,它指向当前分支正在使用的 commit_id,当然它还有很多其他用法,之后我们用一篇新的博文来详细讲解。

二、git reset 原理
通过 git reset --hard <commit_id> 命令修改 HEAD 的指向的 commit_id 来达到版本回退的目的。

如何查找 commit_id
方法一:使用 git log 查看历史 commit_id
方法二:通过 HEAD 命令来代替 commit_id。

HEAD~ 回退一个版本
HEAD~~ 回退两个版本
HEAD~~~ 回退三个版本
HEAD~1 回退一个版本
HEAD~2 回退两个版本
HEAD~3 回退三个版本

git reset 包涵 soft、mixed、hard 三个参数项,这三个参数项控制了 reset 的回退罗辑,下面我们来了解下这三个参数。

git reset --soft <commit_id>
git reset --mixed <commit_id>
git reset --hard <commit_id>

假定我们的 git 仓库状态如下图所示,其中:

绿色表示 to be committed 的文件,也就是未 commit 的文件。
红色表示 Untracked files 的文件,也就是未 add 的文件。

原始仓库状态
三、soft 参数项
soft 参数:回退本地仓库到指定版本,也就是只回退 commit 的文件。
执行 git reset --soft commit_B 命令后,仓库状态入下图所示:

reset soft 后的仓库状态
四、mixed 参数项
mixed 参数:回退本地仓库、暂存区到指定版本,也就是回退 commit 和 add 的文件。该参数为 reset 命令的默认参数。
执行 git reset --mixed commit_B 命令后,仓库状态入下图所示:
reset mixed 后的仓库状态
五、hard 参数项
hard 参数:回退本地仓库、暂存区、工作区到指定版本,也就是回退 commit 和 add 的文件,对于 Untracked files 的文件是不做回退的。
执行 git reset --hard commit_B 命令后,仓库状态入下图所示:
在这里插入图片描述
五、注意注意注意
对于 Untracked files 的文件是不做回退的。
对于 Untracked files 的文件是不做回退的。
对于 Untracked files 的文件是不做回退的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/690412
推荐阅读
  

闽ICP备14008679号