git学习笔记-(13-reset三部曲)
reset三部曲
- git reset --soft commithash —> 用commithash的内容重置HEAD内容
- git reset [–mixed] commithash —> 用commithash的内容重置HEAD内容 重置暂存区
- git reset --hard commithash —> 用commithash的内容重置HEAD内容 重置暂存区重置工作目录
1-1,先处理成下图结构:
1-2,git reset –soft head~
head加上~代表回到上层。也可以更换为之前版本的哈希值。
和checkout切换分支不同,这个命令是head和master一同切换到某个版本上,也就是把某个版本定位主分支,且head指针指向它!!
注意到,它仅仅是改变了head指向(带着分支一起动),而不会变更暂存区和工作区的内容。只是版本库里面指向旧版本了而已(恢复到上一版本)
也就是说,它并不是版本穿梭,而是相当于上节课的(–amend)的功能,也就是提交取消!
所以,撤销提交的git commit --amend实际上由两步组成:
- git reset --soft head~ :提交取消,工作区和暂存区不变
- 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三部曲)相关推荐
- Git学习笔记03--git reset
摘自<Git权威指南> Git reset 是Git最常用的命令之一,也是最危险最容易误用的命令. 用法一:git reset [-q] [<commit>] [--] < ...
- Git 中的对象模型和文件的详细视图 —— Git 学习笔记 13
Git 中的对象模型和文件的详细视图 文章目录 Git 中的对象模型和文件的详细视图 初始状态 编辑一个文件之后 暂存文件后 提交之后 参考资料 本文将用几幅图来可视化一个叫 file1的文件从修改到 ...
- Git学习笔记使用记录
文章目录 Git学习笔记 基本 配置环境 Install 初始化workspace Git 全局设置Global Configuration: 配置账户 创建项目仓库Create project re ...
- Git学习笔记(复习专用,B站狂神说)
Git学习笔记 1.Git和Linux的历史 2.常用的Linux命令 3.Git基本理论(核心) 工作流程: 4.Git项目搭建 本地仓库搭建 5.Git文件操作 忽略文件 6.GitHub的使用 ...
- Git 学习笔记:5 分布式工作流程
Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...
- Git 学习笔记:自定义Git(完)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:分支管理(2)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:修改
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- git学习笔记(全,附命令大全)
git学习笔记(全) 注:本文参考自廖雪峰官网 下图来自Git Cheat Sheet侵删 git优点 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. Git跟踪并管理的是修改 ...
- git学习笔记——Linux和Windows下git的基本操作
git学习笔记--Linux和Windows下git的基本操作 github主页:https://github.com/Taot-chen 一.Linux环境 1.安装git sudo apt-get ...
最新文章
- 你想过 Controller 这些方法里的参数是如何工作的吗?
- java 调用solr服务器_Solr环境搭建及IK分词的集成及solrJ的调用(一)
- java - 方法的重载
- 【机器学习】逻辑回归小结
- 如何将bing搜索页面以HTML Mashup的方式嵌入到SAP C4C页面
- Android学习笔记
- Asp.Net Core部署:早知道,还是docker!以及一点碎碎念
- 通过Spring Boot使用MySQL JDBC驱动程序
- 奇安信代码卫士帮助微软修复多个高危漏洞,获官方致谢
- Bailian4003 十六进制转十进制【入门】
- python内置数据类型列表_python数据类型内置方法 字符串和列表
- class文件反编译成java文件
- 怎么白嫖一部好手机?我来告诉你
- 漫谈微信libco协程设计及实现(万字长文)
- Promise(解决回调地狱)
- 多机器人协同控制方法研究
- 国家发布世界级城市群规划上海“全球城市”
- Vista桌面图标无法拖动
- 饿了么开放接口交流QQ群
- dalvik模式和art模式的区别