在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲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> 命令执行成功

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

参考文章:

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

Git的撤销操作 git reset HEAD -- <file>相关推荐

  1. Git的撤销操作 git checkout -- <file>

    在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit   --amend        撤销上一次提交  并讲暂存区文件重新提交 g ...

  2. Git的撤销操作 git commit --amend

    在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit --amend 撤销上一次提交 并讲暂存区文件重新提交 git checkou ...

  3. Git操作之 git add 撤销、git commit 撤销

    1.git add 添加多余文件 撤销操作 git reset HEAD 后面什么都不跟的,就是上一次add 里面的内容全部撤销 git reset HEAD XXX 后面跟文件名,就是对某个文件进行 ...

  4. git pull命令操作 git pull <remote> <branch>

    git pull命令操作 git pull <remote> <branch> git pull <remote> <branch> 解决1: git ...

  5. 撤销操作 —— Git 学习笔记 12

    撤销操作 写在前面:有些撤消操作是不可逆的. 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一. 修改最新提交 有时候我们提交完了才发现漏掉了几个文件没有添加,或者 ...

  6. 【Git】撤销已经git add的文件

    参考文章:git commit和git add的撤销 如果不想提交某个文件,比如DBConfig.py,但是不小心git add了这个文件,想要撤销add的话,不要用git rm --cached D ...

  7. mac git命令行操作 git push pull 逻辑

    安装git 想push到线上的完整流程是 情况1,本地开发好了,想上传到线上的分支,或master 1.在空文件夹git init 2.配置相关参数 name email origin 3.pull ...

  8. git revert 之后怎么撤销_git撤销操作

    git的撤销操作:reset.checkout和revert 这三个命令都可以用于撤销. reset和checkout可以作用于commit或者文件,revert只能作用于commit. 工作区有改动 ...

  9. git撤销操作(git后悔药)

    git merge 撤销操作 Git撤销暂存区的修改 git add 添加文件到暂存区. git commit 提交更改,把暂存区的所有内容一次性全部提交到当前分支,清空暂存区. 有两种相关操作 通过 ...

最新文章

  1. Shell中要如何调用别的shell脚本
  2. C语言数组的一些运算*a,a+1,a+1,a+0
  3. C++函数模板(一)
  4. 《SolidWorks 2017中文版机械设计从入门到精通)》——2.6 几何关系
  5. 使用vuex实现父组件调用子组件方法
  6. Java的子类可以继承父类的静态变量和静态方法吗?
  7. react学习(14)-getTime是对时间进行处理的方法
  8. GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection
  9. 微软官方WebCast视频打包下载
  10. ElasticSearch基础之批量操作(mget+mbulk)
  11. plsql 存储过程 测试
  12. 车险赔付率分析报告_汽车保险理赔案例分析报告.ppt
  13. 华为p20如何连接计算机,华为P20 USB调试和开发人员选项的打开方法(EMUI8.1)
  14. ZZULIOJ:1044: 不及格率
  15. 跳转到QQ聊天界面和QQ群界面
  16. Excel中快速填充产生连续的数字编号
  17. 核桃编程python下载_核桃编程for Mac
  18. 监控网络行为——公务员上班玩游戏
  19. 【SeedLab】ARP Cache Poisoning Attack Lab
  20. 爬虫常见的加密解密算法

热门文章

  1. 聊聊Spring Boot中的优雅停机
  2. Spring 面试题(2021最新版)赶紧收藏!
  3. 在 IntelliJ IDEA 中与小姐姐连麦写代码是什么体验?
  4. 云原生收购潮:思科计划收购Portshift;Kasten加入Veeam
  5. 大厂的 404 页面都长啥样?最后一个绝了...
  6. 小小TODO标识,你用对了吗?
  7. 如何让普通进程获得 root 的洪荒之力?
  8. Spring Boot 2.0 新特性
  9. linux 并行计算命令,Linux下的并行神器——parallel
  10. android adb恢复出厂设置,android开发分享擦除数据/通过ADB恢复出厂设置