Git 初接触 (三) Git的撤销操作 git reset HEAD -- <file>

来源:互联网 发布:mac 上的游戏 编辑:程序博客网 时间:2024/05/23 10:44

在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作

撤销操作主要有如下几种

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

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

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

    举个例子 我们的项目目录 和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 -- <file> 这个命令的各个参数了

    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 -- <file> 命令来把 暂存区文件拉到工作区

    这里写图片描述

    这里写图片描述

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

原创粉丝点击