在实际中,向版本库提交多次后,几千行代码肯定不记得每次都改了什么,可以使用git log来查看提交日志。也就是git commit -m 后面填写的这部分内容

也可以使用git log --pretty=oneline让日志显示的简略点,--后面没空格的。

黄色的很长的这一段是commit id也就是版本号

在Git中,使用HEAD表示当前版本,上一个版本就是HEAD^,再上一个就是HEAD^^。也可以用HEAD~100表示往上100个版本

使用git reset命令版本回退,--hard参数之后再说。

使用git log可以看到修改内容的那个版本没有了

但是回退之后又后悔了,想要回到修改内容的版本怎么办。如果当前命令框还没有关闭,找到修改内容那个版本对应的commit id

使用 git reset --hard commit id。就可以更改回去。commit id 可以只输入前面几位

可以看到修改部分内容又回来了

但是如果命令窗口被关闭了该怎么办?使用git reflog可以查看自己历史操作命令

Git的版本回退速度非常快,因为Git内部有一个指向当前版本的HEAD指针,当版本回退时。仅仅只是把HEAD的指向改变了,然后顺便把工作区更新了,所以把HEAD指向哪个版本,哪个就是最新版本。

小结:

HEAD指向的版本就是最新版本,因此使用 git reset --hard commit id可以在不同版本之间切换

git log可以查看提交历史,方便确认要回到哪个历史版本

git reflog可以查看命令历史,方便确认要回到哪个未来版本

Git学习笔记06-版本回退的更多相关文章

  1. GIT学习笔记(1):创建版本库

    GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...

  2. Git学习笔记(一) 安装及版本库介绍

    安装Git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和 ...

  3. 【转帖】Git学习笔记 记录一下

    本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...

  4. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  5. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  6. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  7. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

    机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...

  8. GIT学习笔记(4):远程分支

    GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...

  9. GIT学习笔记(3):分支管理

    GIT学习笔记(3):分支管理 何谓分支 GIT是如何存储数据的 GIT不是存储文件差异或者变化量,而是一系列文件的快照.在Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容 ...

随机推荐

  1. HDFS集群优化篇

    HDFS集群优化篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作系统级别优化 1>.优化文件系统(推荐使用EXT4和XFS文件系统,相比较而言,更推荐后者,因为XF ...

  2. script nGrinder_TestRunnerInsertMysqlSingle.groovy

    s 阿里巴巴Java开发规范手册.zip http://dl.iteye.com/topics/download/ffc4ddcf-8b65-3b3c-b146-96468e2baf40 /** 关于 ...

  3. 二叉树建立及遍历 C++ 源码

    #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include <stdlib.h> using namespace s ...

  4. 利用spring的MultipartFile实现文件上传【原】

    利用spring的MultipartFile实现文件上传 主要依赖jar包 spring-web-3.0.6.RELEASE.jar 用到 (org.springframework.web.multi ...

  5. 061、flannel的连通与隔离(2019-04-01 周一)

    参考https://www.cnblogs.com/CloudMan6/p/7447716.html   flannel网络连通性测试 不同host上的容器可以通过flannel网络进行通信,需要借助 ...

  6. NSScanner类的基本用法

    NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串.可以在创建NSScaner时指定它的string属性,然后scanner会按照你的要求从头到尾地扫描 ...

  7. idea JRebe插件激活方法

    具体方法请看创始人博客及github

  8. 三十五、minishell(3)

    35.1 内容 在当前的 minishell 中,如果执行 date clear 命令等,minishell 会停止: 这是因为引入进程组的时候,mshell 放置在前台进程组,同时之后在子进程中又创 ...

  9. 一个简单至极的PHP缓存类代码

    https://www.jb51.net/article/73836.htm 直接看代码吧!使用说明:1.实例化$cache = new Cache(); 2.设置缓存时间和缓存目录$cache = ...

  10. Understanding a project which include NodeJS, Webpack, Vue

    公司有一个web 项目是用 Vue 写的, 前段时间负责这个tool的人离职了没有人维护,其他人又很忙,我就去看了一下以便以后能加一些新功能在上面 没有接触过Vue, 这些理解了一下关系做一些学习记录 ...