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使用五:回到过去的更多相关文章

  1. git学习(五):git diff魔法

    不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd ...

  2. git学习——<五>git分支

    git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...

  3. 小丁带你走进git世界五-远程仓库

    一.文件,指令讲解 首先讲一下远程仓库和本地仓库在文件上面的区别,首先我们来看下对比图(当然这里说的区别是在于.git文件下面的文件内容,至于里面内容我们不会关注)這裡我们进行了相同的操作就是本地仓库 ...

  4. 【git学习五】git基础之git分支

    1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立 ...

  5. Git:五、操作远程仓库

    0.一般流程 1)自己新写:GitHub创建有README的库 -> clone到本地 2)修改已有:GitHub上fork别人的仓库 -> clone自己账号下的库到本地 1.创建库 右 ...

  6. git第五节--git branch--分支管理

    @git branch :查看当前仓库所有分支,及当前所处的分支 @git branch XXX:创建分支XXX @git checkout XXX:切换到分支XXX下 @git checkout - ...

  7. Git(五)IDEA应用Git

    一.IDEA客户端git 1.提交代码到本地仓库 1. 关联Git,创建本地库 关联git 配置git环境变量 设置本地仓库目录,一般是IDEA工作空间,选择VCS->Import into V ...

  8. 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目

    上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...

  9. Git系列五之分支管理

    1.Git分支管理 分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之 ...

随机推荐

  1. 编写blog第一天

    今天玩的比较嗨,离开学还剩半个月了,之前在网上搜集了一些blog制作方面的资料,并且在博客园注册了一个账号,今天才打开了申请已久的blog,现在已经对blog具有的基本功能和界面布局有了比较全面的掌握 ...

  2. Web项目笔记(一)JSONP跨域请求及其概念

    https://blog.csdn.net/u014607184/article/details/52027879 https://blog.csdn.net/saytime/article/deta ...

  3. Javascript入门(二)变量、获取元素、操作元素

    一.变量 Javascript 有五种基本数据类型 number.String.boolean.undefined.null 一种复合类型:object 二.使用getElementById方法获取元 ...

  4. Tip: JSP开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...

  5. 人人项目renren-security\git\renren-security的目录下的文件列表

    \.git\config; \.git\FETCH_HEAD; \.git\HEAD; \.git\index; \.git\logs\HEAD; \.git\logs\refs\heads\mast ...

  6. php编程 之 php进阶练习

    1,php的date相关操作: PHP date() 函数可把时间戳格式化为可读性更好的日期和时间. <?php echo date("Y/m/d") . "< ...

  7. 20165337岳源 第四次实验 Android开发

    1.实验要求: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章 参考http://www.cnblogs.com ...

  8. 基于keepalived搭建MySQL热机集群

    背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...

  9. ActiveMQ使用

    一.Windows安装ActiveMQ 1.下载解压 2.启动服务 二.Linux安装ActiveMQ 1.下载解压 2.启动访问 三.队列模式 1.创建maven项目 2.生产者 3.消费者 四.主 ...

  10. TechnoSoftware OPCDA client(1.2.1) Error Codes

    OPCDA.NET Client Interface WrapperSummary of OPC Error Codes We have attempted to minimize the numbe ...