Git使用五:回到过去
reset:将仓库里面的内容恢复回暂存区,类似于从仓库里检出文件到暂存区
checkout:将暂存区的文件恢复回工作区,即,把暂存区的文件检出到工作区

下面是之前三次提交的内容


三个区域的文件状态:

执行命令:git reset HEAD~
这里~代表上一个版本,这个时候,就会回到第二次提交的状态,而仓库和暂存区的文件也会发生变化
~~代表上上个版本,以此类推,也可以这样表示~10(往回退10个版本)

这个时候,git检测到工作区的文件比暂存区的文件内容更新,所以会报没有被暂存的提示

再次执行git log,只显示前面两个提交记录了

reset命令的选项
git reset --mixed HEAD~(默认)
移动HEAD的指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域
git reset --soft HEAD~
移动HEAD的指向,将其指向上一个快照,不会修改暂存区的内容(撤销上一次的提交)
git reset --hard HEAD~
移动HEAD的指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域
将回滚后暂存区的文件还原到工作目录
执行hard命令前

执行后

更新历史也只剩一个了

文件状态

总结:
1.移动 HEAD 的指向(--soft)
2.将快照回滚到暂存区域([--mixed],默认)
3.将暂存区域还原到工作目录(--hard)
4.回滚到指定快照:git reset bfde835f7c9ef846

5.回滚个别文件(不会改变head指针):git reset 版本快照 文件名/路径
6.reset不仅可以回滚,还可以往前滚:git reset 版本快照的ID号

Git使用五:回到过去的更多相关文章
- git学习(五):git diff魔法
不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd ...
- git学习——<五>git分支
git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...
- 小丁带你走进git世界五-远程仓库
一.文件,指令讲解 首先讲一下远程仓库和本地仓库在文件上面的区别,首先我们来看下对比图(当然这里说的区别是在于.git文件下面的文件内容,至于里面内容我们不会关注)這裡我们进行了相同的操作就是本地仓库 ...
- 【git学习五】git基础之git分支
1.背景 最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立 ...
- Git:五、操作远程仓库
0.一般流程 1)自己新写:GitHub创建有README的库 -> clone到本地 2)修改已有:GitHub上fork别人的仓库 -> clone自己账号下的库到本地 1.创建库 右 ...
- git第五节--git branch--分支管理
@git branch :查看当前仓库所有分支,及当前所处的分支 @git branch XXX:创建分支XXX @git checkout XXX:切换到分支XXX下 @git checkout - ...
- Git(五)IDEA应用Git
一.IDEA客户端git 1.提交代码到本地仓库 1. 关联Git,创建本地库 关联git 配置git环境变量 设置本地仓库目录,一般是IDEA工作空间,选择VCS->Import into V ...
- 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目
上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...
- Git系列五之分支管理
1.Git分支管理 分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之 ...
随机推荐
- Spring MVC 注解相关
// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有 @ResponseBody @RequestMapping("testRequ ...
- 第一章 Android系统的编译和移植实例
第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入 ...
- BootstrapValidator 解决多属性被同时校验问题
问题描述:在使用bootstrapValidator插件校验表单属性,当表单属性过多需要每行并列多个属性 ,会出现校验第一个属性,发现整行被校验的效果 ,这不是我们工作想要的效果.如图: 问题分析:因 ...
- 发布逸出 java this 逸出【转】
转自:http://blog.csdn.net/joker_zhou/article/details/7322801 (1)发布:发布是指将一个对象,使其引用储存到一个其他代码可以访问到的地方,在一个 ...
- Jquery的一些常见用法
谨以此文怀念我们大学的时光,Jquery3.4.0下载 https://code.jquery.com/jquery-3.4.0.min.js ⒈常用方法 $("#div1").h ...
- HSV color space
计算机图形学原理的课给我们指定了课题然后自己去研究并且做ppt(顺便吐槽一下晚课下课布置作业第二天早课就要交的辣鸡时间安排) 肝了一个晚上 大概知道了一点 先写下来 HSV其实是hue saturat ...
- 【转】【Linux】Linux下统计当前文件夹下的文件个数、目录个数
[转][Linux]Linux下统计当前文件夹下的文件个数.目录个数 统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的 ...
- Cascade R-CNN论文讲解(转载)
转载链接:https://blog.csdn.net/qq_21949357/article/details/80046867 论文思想:为了解决IOU设置带来的最终的AP值,作者引入了cascade ...
- This Product is covered by one or more of the following......的问题
DELL台式机安装ubuntu后无法正常启动,黑屏显示:This Product is covered by one or more of the following...... 解决方案:进入BIO ...
- hibernate框架学习之数据查询(QBC)
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...