1.谈一谈git中的版本回退

1.我们在git中的每一次 git commit 操作就会提交一个历史版本;
2.每一个历史版本都有一个唯一的hash值进行记录;
3.每一个历史版本实际上就是我们对工作区中的内容修改的一次记录;
4.因此,当我们像退回到某个修改的时候,只需要退回到某个版本即可。
-------------------------------------------------------------------------------
5.在git的版本管理中,有一个叫做`HEAD`的标记,这个标记就是一个用来指向当前版本的指针;
6.因此,当我们进行版本回退或版本切换的时候,实际上是移动HEAD指针的位置。
-------------------------------------------------------------------------------
7.版本回退或版本穿梭之后,可以在对应的版本上进行操作,及提交,提交后便会正常生成一次历史记录。

2.git的历史版本查看命令

2.1 git 历史查看命令介绍

1.git log : 查看详细历史记录,按提交时间倒叙排列,包含提交时间,提交作者,提交备注以及提交的hash值;
2.git log --pretty=oneline : 格式化log形式,每条log只有一行,只包含 完整的hash值 和 提交的备注;
3.git log --oneline : 格式化log形式,每条log只有一行,只包含 短hash值 和 提交的备注;【注】2和3的区别就是 展示的hash值的长短,短hash就是完整hash截取了前7位的表示形式。4.git log -n 3 : 只展示最新的 几条 日志,-n 后面的数字就表示 要展示的条数;
5.git log --graph : 会展示历史提交的分支路线;【注】 参数可以结合使用!比如 git log --oneline -n 3 : 即一行一行的展示+只展示最近的3次提交记录;比如 git log --oneline --graph : 即一行一行的展示+展示提交的路线;6.git reflog : 展示短hash+HEAD{n}+提交备注,非常方便用来进行历史版本的回退与任意版本的切换;
7.git reflog -n 2 : 表示只看最近的两次提交【注】 git log 和 git reflog 的区别:git log : 只展示 当前版本之前的版本,即HEAD指针指向的版本及之前的历史版本;git reflog : 会展示所有的历史提交版本,非常的全。8.git log --stat : 可以查看历史提交的改动的文件

2.2 git历史查看命令使用效果

2.2.1 git log

$ git log

2.2.2 git log --pretty=oneline

$ git log --pretty=oneline

2.2.3 git log --oneline

$ git log --oneline

2.2.4 git log -n 2

$ git log -n 2

$ git log --oneline -n 2

2.2.5 git log --graph

$ git log --graph

$ git log --oneline --graph

2.2.6 git log reflog

$ git reflog

$ git reflog -n 2

3.git的版本回退操作(*)

操作思路 : 1.使用 git log 或者 git reflog 命令 获取到要回退或者切换的版本id2.使用 git reset --hard命令回退/切换到某个历史版本;3.git reset --hard 命令会重置  本地仓库、暂存区和工作区,三者的状态保持一致!
版本回退/切换的命令:
1.git reset --hard [索引值] : 可切换到任意版本[推荐使用这个方式]
2.git reset --hard HEAD^ : 只能后退,一个 ^ 表示回退一个版本,两个^ 表示回退两个版本,。。。依次类推
3.git reset --hard HEAD~n :只能后退,n表示后退n个版本

3.1 git reset --hard HEAD^

^ : 一个^ 表示回退一个版本;两个^表示回退两个版本;三个^表示回退三个版本;。。。。。。n个^表示回退n个版本
下面看一下具体的操作:

1.当前的版本及文件数据:

2.回退到上一个版本

3.2 git reset --hard HEAD~n

~n : 表示直接回退到 n 个版本;
是 ^ 参数的简写
下面看一下具体的操作

1.当前的版本及文件数据

2.版本一下子回退 3个

3.3 git reset --hard [索引值]

1.上面的两种方式只能往之前的版本切换;
2.如果想进行任意版本的切换,就可以直接使用 git reset --hard [索引值] 命令;
3. 配合 git reflog 命令可以查看到所有的历史版本的提交。
下面看一下具体的操作

1.查看所有的历史版本

2.穿梭到最新的版本 78fa619 版本上

4.扩展 git reset 的其他参数(了解)

git reset --soft  :1.仅在本地版本库移动指针。
git reset --mixed : 1.移动本地版本库的指针;2.重置暂存区。(默认的参数)
git reset --hard  : 1.移动本地版本库的指针;2.重置暂存区;3.重置工作区。

5.完成

Congratulations!
You are one step closer to success!

Git基础-git的历史版本查看与版本回退(版本切换)相关推荐

  1. Git基础-git diff 比较文件的差异

    1.问题讨论的情景 查看 比较 被git管理的文件在 工作区.暂存区和版本库之间的差异, 就需要用到 git diff 命令. 下面讨论以下四个情景下文件的差异的比较:* 工作区和暂存区* 工作区和版 ...

  2. 怎么看linux Java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  3. 如何查看Linux的java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  4. centos查看oracle版本,查看linux系統版本信息(Oracle Linux、Centos Linux、Redhat Linux、Debian、Ubuntu)...

    一.查看Linux系統版本的命令(3種方法) 1.cat /etc/issue,此命令也適用於所有的Linux發行版. [root@S-CentOS home]# cat /etc/issue Cen ...

  5. 查看Linux补丁程序 版本,查看Linux内核的版本方法

    登录Linux系统,在文本终端用下面的命令: $ uname -r 其结果: Linux localhost.localdomain 2.6.32-71.el6.x18_64 #1 SMP Web S ...

  6. 【Git基础系列】之切换至远程的分支

                             [Git基础系列]之切换至远程库的分支     大家好,我是Lampard~~     欢迎来到Git基础系列的博客     今天讲的是如何切换到远程 ...

  7. Git基础知识教程整理(Git基本操作)

    Git简介 Git是目前世界上最先进的分布式版本控制系统(没有之一). Linux之父Linux用C语言写了Git分布式版本控制系统. 分布式版本控制系统与集中式版本控制系统的区别 区别 分布式 集中 ...

  8. linux shell 版本信息,查看各种Linux系统版本信息的Shell命令

    几种查看Linux版本信息的方法: 1. uname -a 2. cat /proc/version 3. cat /etc/issue 4. lsb_release -a 详解 lsb_releas ...

  9. win10查看计算机系统版本,Win10版本怎么看?Win10系统版本查看方法

    虽然Win7已经停止了更新,不过微软最新的Win10还是在不断更新版本,带来了更完善的新功能与更安全的用户体验.由于Win10版本更新比较快,以致于很多朋友的系统版本过老,容易导致出现一些问题,比如驱 ...

最新文章

  1. java 动态解析_Java 如何解析key为动态的json操作
  2. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常
  3. 带来高收入的三大竞争力技巧,可以涨到40W了!
  4. CentOs6.5下独立安装Nginx篇
  5. 安装visual studio(vs)后无法安装SQLserver问题的成功解决
  6. python可以开发exe软件吗_python能开发exe软件吗
  7. 网络爬虫--20.【Scrapy-Redis实战】分布式爬虫获取房天下--代码实现
  8. linux下安装minio
  9. 信息学奥赛一本通1220
  10. matlab求解数值积分,应用MATLAB求解数值积分
  11. Python 弹出对话输入框
  12. requests库请求获取不到数据怎么办?不妨试试看这种妙法
  13. 信号处理中的低通、高通和带通滤波器
  14. linux之文件搜索和文件内容搜索
  15. 机器学习实战——数据探索之数据泄露(Data Leakage)
  16. Lua利用自定义函数打印_G内容
  17. 计算机企业想法描述范文,产生你的企业想法.doc
  18. 程序员男友“嫌”我收入低,劝我转行互联网,我该听他的吗?
  19. 项目总结:人脸识别签到系统
  20. amplitude adjusted Fourier transform(AAFT)是一种什么样的数学方法?

热门文章

  1. 阿里关涛谈大规模计算—从数字化阿里到数字化城市的进化
  2. 点云配准 7-特征描述子
  3. 论文阅读笔记:HRNet
  4. 计算机网络第二章物理层笔记 值得收藏
  5. 如何对全国麦当劳、KFC这些餐饮巨头做空间分析
  6. 基于HBIC准则的混合PPCA的有效模型选择
  7. php tp5框架新特性面试,tp5完整加载执行流程——thinkphp5 框架
  8. Android 在Launcher桌面添加应用快捷图标(适用于Android 7.0(API24) 及以下)
  9. php 内容超出用省略号,让超出的文字显示为省略号
  10. Matlab 并行计算学习初步