Git基础-git的历史版本查看与版本回退(版本切换)
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的历史版本查看与版本回退(版本切换)相关推荐
- Git基础-git diff 比较文件的差异
1.问题讨论的情景 查看 比较 被git管理的文件在 工作区.暂存区和版本库之间的差异, 就需要用到 git diff 命令. 下面讨论以下四个情景下文件的差异的比较:* 工作区和暂存区* 工作区和版 ...
- 怎么看linux Java版本,查看linux的java版本信息
查看linux的java版本信息 [2021-02-10 01:02:40] 简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...
- 如何查看Linux的java版本,查看linux的java版本信息
查看linux的java版本信息 [2021-02-10 01:02:40] 简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...
- 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 ...
- 查看Linux补丁程序 版本,查看Linux内核的版本方法
登录Linux系统,在文本终端用下面的命令: $ uname -r 其结果: Linux localhost.localdomain 2.6.32-71.el6.x18_64 #1 SMP Web S ...
- 【Git基础系列】之切换至远程的分支
[Git基础系列]之切换至远程库的分支 大家好,我是Lampard~~ 欢迎来到Git基础系列的博客 今天讲的是如何切换到远程 ...
- Git基础知识教程整理(Git基本操作)
Git简介 Git是目前世界上最先进的分布式版本控制系统(没有之一). Linux之父Linux用C语言写了Git分布式版本控制系统. 分布式版本控制系统与集中式版本控制系统的区别 区别 分布式 集中 ...
- linux shell 版本信息,查看各种Linux系统版本信息的Shell命令
几种查看Linux版本信息的方法: 1. uname -a 2. cat /proc/version 3. cat /etc/issue 4. lsb_release -a 详解 lsb_releas ...
- win10查看计算机系统版本,Win10版本怎么看?Win10系统版本查看方法
虽然Win7已经停止了更新,不过微软最新的Win10还是在不断更新版本,带来了更完善的新功能与更安全的用户体验.由于Win10版本更新比较快,以致于很多朋友的系统版本过老,容易导致出现一些问题,比如驱 ...
最新文章
- java 动态解析_Java 如何解析key为动态的json操作
- 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常
- 带来高收入的三大竞争力技巧,可以涨到40W了!
- CentOs6.5下独立安装Nginx篇
- 安装visual studio(vs)后无法安装SQLserver问题的成功解决
- python可以开发exe软件吗_python能开发exe软件吗
- 网络爬虫--20.【Scrapy-Redis实战】分布式爬虫获取房天下--代码实现
- linux下安装minio
- 信息学奥赛一本通1220
- matlab求解数值积分,应用MATLAB求解数值积分
- Python 弹出对话输入框
- requests库请求获取不到数据怎么办?不妨试试看这种妙法
- 信号处理中的低通、高通和带通滤波器
- linux之文件搜索和文件内容搜索
- 机器学习实战——数据探索之数据泄露(Data Leakage)
- Lua利用自定义函数打印_G内容
- 计算机企业想法描述范文,产生你的企业想法.doc
- 程序员男友“嫌”我收入低,劝我转行互联网,我该听他的吗?
- 项目总结:人脸识别签到系统
- amplitude adjusted Fourier transform(AAFT)是一种什么样的数学方法?