Git的撤销操作 git reset HEAD -- <file>

在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作
撤销操作主要有如下几种

git commit   --amend        撤销上一次提交  并讲暂存区文件重新提交
git checkout --     拉取暂存区文件 并将其替换成工作区文件
git reset HEAD  --  拉取最近一次提交到版本库的文件到暂存区  改操作不影响工作区

  • git reset HEAD --

该操作 可以 拉取最近一次提交到版本库的文件到暂存区 并且该操作不影响工作区

简单的来说 就是可以帮我们从版本库中 拉取文件到 暂存区 当我们把工作区的某个文件弄乱了 我们就可以使用该命令 把版本库中的那个文件拉到暂存区 然后在拉回工作区

举个例子 我们的项目目录 和Git版本库提交日志 如下图

这里写图片描述

这里写图片描述

我们现在在 version 5.0版本 5.0版本readme.md 里面有 hello world ! 这个字符串 而我们需要 readme.md 里面是空白的 我们只记得 version 1.0 里面readme.md 是空白的 所以我们现在需要把 version 1.0 里面的 readme.md 拉到我们的工作区

这时我们就不得不分析一下 git reset HEAD -- 这个命令的各个参数了

filename 一看就知道 是我们要拉取的文件名

HEAD 可以理解为一个游标 一直指向当前我们所在版本库的地址 就是我们当前所在版本库的头指针

当然 我们也可以不使用HEAD 可以直接使用版本库的地址 版本库地址 可以用 git log 命令打印出来

如下图 version 1.0 的版本库地址为 f0a1684

这里写图片描述

我们执行 git reset f0a1684 -- readme.md 结果如下图

这里写图片描述

使用 git status 参看仓库状态 如下图

这里写图片描述

我们发现 现在暂存区里的文件 和 工作区 当前版本库的 都不一样 这说明我们已经成功的把 version 1.0 中 空的 readme.md 拉取到了 暂存区 因为工作去和当前版本库里的 readme.md 里面都应该有 hello world !

我们在使用 git checkout -- 命令来把 暂存区文件拉到工作区

这里写图片描述

这里写图片描述

工作区 readme.md 现在变成空了 拉去成功 说明我们的 git reset HEAD -- 命令执行成功

 

另外Git Reset 三种模式:Git Reset 三种模式


 

参考文章:

https://blog.csdn.net/qq_36431213/article/details/78858848

你可能感兴趣的:(git)