reset三部曲

  1. git reset --soft commithash —> 用commithash的内容重置HEAD内容
  2. git reset [–mixed] commithash —> 用commithash的内容重置HEAD内容 重置暂存区
  3. git reset --hard commithash —> 用commithash的内容重置HEAD内容 重置暂存区重置工作目录

1-1,先处理成下图结构:


1-2,git reset –soft head~
head加上~代表回到上层。也可以更换为之前版本的哈希值。
和checkout切换分支不同,这个命令是head和master一同切换到某个版本上,也就是把某个版本定位主分支,且head指针指向它!!


注意到,它仅仅是改变了head指向(带着分支一起动),而不会变更暂存区和工作区的内容。只是版本库里面指向旧版本了而已(恢复到上一版本)


也就是说,它并不是版本穿梭,而是相当于上节课的(–amend)的功能,也就是提交取消!
所以,撤销提交的git commit --amend实际上由两步组成:

  1. git reset --soft head~ :提交取消,工作区和暂存区不变
  2. git commit 重新写注释再提交。

也就是说,git reset --soft head~才是真正的撤销提交!
也就是此时版本库head指向的应该是上一版本:
1-3,再把这个命令拓展一下:git reset --soft commithash
就可以把head和对应分支直接切换到对应版本上了。


比如说我现在想切换回去:

就又回来了。

checkout深入理解

git   checkout brancname  跟   git reset --hard commithash特别像共同点都需要重置 HEAD   暂存区   工作目录区别checkout对工作目录是安全的    reset --hard是强制覆盖checkout动HEAD时不会带着分支走而是切换分支reset --hard时是带着分支走checkout + 路径git checkout commithash  filename   重置暂存区重置工作目录git checkout -- filename  重置工作目录

git学习笔记-(13-reset三部曲)相关推荐

  1. Git学习笔记03--git reset

    摘自<Git权威指南> Git reset 是Git最常用的命令之一,也是最危险最容易误用的命令. 用法一:git reset [-q] [<commit>] [--] < ...

  2. Git 中的对象模型和文件的详细视图 —— Git 学习笔记 13

    Git 中的对象模型和文件的详细视图 文章目录 Git 中的对象模型和文件的详细视图 初始状态 编辑一个文件之后 暂存文件后 提交之后 参考资料 本文将用几幅图来可视化一个叫 file1的文件从修改到 ...

  3. Git学习笔记使用记录

    文章目录 Git学习笔记 基本 配置环境 Install 初始化workspace Git 全局设置Global Configuration: 配置账户 创建项目仓库Create project re ...

  4. Git学习笔记(复习专用,B站狂神说)

    Git学习笔记 1.Git和Linux的历史 2.常用的Linux命令 3.Git基本理论(核心) 工作流程: 4.Git项目搭建 本地仓库搭建 5.Git文件操作 忽略文件 6.GitHub的使用 ...

  5. Git 学习笔记:5 分布式工作流程

    Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...

  6. Git 学习笔记:自定义Git(完)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. Git学习笔记:分支管理(2)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  8. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. git学习笔记(全,附命令大全)

    git学习笔记(全) 注:本文参考自廖雪峰官网 下图来自Git Cheat Sheet侵删 git优点 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. Git跟踪并管理的是修改 ...

  10. git学习笔记——Linux和Windows下git的基本操作

    git学习笔记--Linux和Windows下git的基本操作 github主页:https://github.com/Taot-chen 一.Linux环境 1.安装git sudo apt-get ...

最新文章

  1. 你想过 Controller 这些方法里的参数是如何工作的吗?
  2. java 调用solr服务器_Solr环境搭建及IK分词的集成及solrJ的调用(一)
  3. java - 方法的重载
  4. 【机器学习】逻辑回归小结
  5. 如何将bing搜索页面以HTML Mashup的方式嵌入到SAP C4C页面
  6. Android学习笔记
  7. Asp.Net Core部署:早知道,还是docker!以及一点碎碎念
  8. 通过Spring Boot使用MySQL JDBC驱动程序
  9. 奇安信代码卫士帮助微软修复多个高危漏洞,获官方致谢
  10. Bailian4003 十六进制转十进制【入门】
  11. python内置数据类型列表_python数据类型内置方法 字符串和列表
  12. class文件反编译成java文件
  13. 怎么白嫖一部好手机?我来告诉你
  14. 漫谈微信libco协程设计及实现(万字长文)
  15. Promise(解决回调地狱)
  16. 多机器人协同控制方法研究
  17. 国家发布世界级城市群规划上海“全球城市”
  18. Vista桌面图标无法拖动
  19. 饿了么开放接口交流QQ群
  20. dalvik模式和art模式的区别

热门文章

  1. 实现数组头尾两端元素对调代码
  2. macbook 安装任意来源
  3. Android已有的原生Camera框架中加入自己的API的实现方案。
  4. ssl 1606 选课
  5. JAX-WS发布WebService
  6. [Delphi]用程序更改 IE 的代理服务器(Proxy)设置及本地连接
  7. Delphi如何调用C++写的DLL
  8. java反编译jar包并修改class文件重新打包
  9. java poi 只能创建?,Java POI使用SS模型创建新的工作簿?
  10. Redis的持久化机制:RDB和AOF