git 查看某些文档的历史版本_Git 教程(二)log 命令的使用

3f3c5b7adf352e4b0a18a8c077918d54.png

使用 Git 进行版本控制时,要习惯他的工作流程,Git 的工作流程是,先在工作区创建项目并编写代码,然后将写好的文件添加到暂存区,最后将暂存区里的文件提交到历史版本库。如下图所示:

d70aa66a827b44a413ebe5deb75a8f5b.png

每向版本历史库做一次提交, Git 就会生成一个新的项目版本,这样的话,你就能很容易地找到之前的版本,在之前的版本上继续开发。使用git log命令就可以很方便地查看项目的版本演变历史。

单个分支

git log最简单的使用方式就是在当前分支下直接输入git log命令,该命令的作用是查看当前分支点所有提交记录(或者说是版本历史)。

git log #显示全部的版本历史

32509496b9bb955d5b66a8d0d87eb2dc.png

如果想让它简洁地显示,可以在后面加一个--oneline的选项,意思是每条版本历史只显示一行。

git log --oneline #简洁地显示版本演变历史

106dc02352d9480c3523ddd11e18955e.png

还可以指定显示最新的几条记录,在git log的后面加上-nx选项就好了,实际使用的时候,-nx中的x要换成具体的数字,比如:

git log -n2 #查看最近的两条记录

1d47ca9aa12ef2ad77c75174c3e20587.png

当然-nx--oneline这两个选项也可以结合起来使用:

git log -n2 --oneline #简洁地显示最近两条记录

c5c3a9b2d7d369c67d74fa4a1b86386e.png

多个分支

前面我们只演示了如何在单个分支上使用git log命令,但是在实际的开发中,往往不止一个分支,当有多个分支时,git log命令该如何使用呢?

为了演示方便,我们先创建一个分支,用如下命令:

git checkout -b temp 9b56fe338ae3a33a4bc373c75597aec91dc5a2eb

其中,temp是用户自定义的分支名,9b56fe338ae3a33a4bc373c75597aec91dc5a2eb是版本标识,代表着你要以哪个版本为基础创建分支,如下图所示:

cc2723013b61abc2989749f03e5d3671.png

分支创建好之后,使用下面这个命令查看本地有多少分支:

git branch -v

63338ed2179ebbf55c38f8fdd76b1495.png

上图中的master是主分支,而temp就是我们刚才创建的分支。

创建完分支后,Git 默认会留在你创建的这个分支中,这个时候如果输入git log命令,显示的就是当前temp分支的版本演变历史。

8f26124af85f06d2e97779f032bbf89d.png

对 temp 分支下的readme.txt文件做一下修改,然后将其提交到版本历史库里面。

输入以下命令,可以查看所有分支的版本演变历史:

git log --all

4b0961ffdebc4475a7f940bb27b6ff23.png

但是这样看起来难免有些眼花缭乱,分不清分支之间的父子关系。那么你可以在后面加一个选项--graph,使之用图形化的方式显示。

git log --all --graph #以图形化的方式显示版本演变历史

3f07999cd5f8acd0eafb97bc82404f33.png

这样就可以很明显地看出各分支的关系以及版本演变历史。

如果你想在当前分支下查看其他分支的版本演变历史,可以在git log命令后面加上分支名来查看指定分支的版本演变历史:

git log master # 查看master分支的版本演变历史

以上就是git log命令的几个常用选项,各个选项可以根据你的需求相互组合,比如,我想查看所有分支的最近的两条版本演变历史,并且让他以图形化的方式显示,而且还要简洁的地显示。那么可以这样输入命令:

9e598c6687480e93d6de40af5d9ab9f1.png

当然,git log的用法远不止这些,如果你想了解他的其他用法,可以在命令行中输入:

git help --web log #在浏览器中查看log的帮助文档

6bdc9074a027d883db4f228d6796f22b.png

欢迎大家关注我的微信公众号:AProgrammer,与我交流!

792706cae0ba0cbd060364448a52a17b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】sclearn分类算法-决策树、随机森林

分类算法-决策树、随机森林1.决策树1.1 认识决策树1.2 信息论基础-银行贷款分析1.3 决策树的生成1.4 决策树的划分依据之一-信息增益1.5 sklearn决策树API1.6 泰坦尼克号乘客生存分类2. 集成学习方法-随机森林1.决策树 1.1 认识决策树 决策树思想的来源非常朴素,程…

【机器学习】回归算法-线性回归分析、回归实例和回归性能评估

回归算法-线性回归分析、回归实例和回归性能评估线性回归损失函数(误差大小)sklearn线性回归正规方程、梯度下降API线性回归实例回归:目标值连续;分类:目标值离散。 预测回归和分类是不一样的。回归问题可以用于预测销售额,比如公…

scrapy使用代理报错keyerror: proxy_爬虫Scrapy框架-Crawlspider链接提取器与规则解析器...

Crawlspider一:Crawlspider简介CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能。其中最显著的功能就是”LinkExtractors链接提取器“。Spider是所有爬虫的基类,其…

传智书城首页设计代码_(自适应手机版)响应式创意餐饮酒店装饰设计类网站织梦模板 html5蓝色餐饮酒店设计网站源码下载...

模板名称:(自适应手机版)响应式创意餐饮酒店装饰设计类网站织梦模板 html5蓝色餐饮酒店设计网站源码下载本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅仅局限于一类型的企业,创意设计、装饰设计、餐饮酒店设计…

【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测

逻辑回归—良/恶性乳腺癌肿瘤预测 逻辑回归的损失函数、优化 与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解 sklearn逻辑回归API sklearn.linear_model.LogisticRegressionLogisticRegression sklearn.linear…

opencv mat初始化_【OpenCV入门之十二】看起来一样的图像竟然存在这么大的差别!...

小白导读学习计算机视觉最重要的能力应该就是编程了,为了帮助小伙伴尽快入门计算机视觉,小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善,主要是借鉴了更多大神的文章,希望让小伙伴更加容易理解。如果小伙伴觉…

LeetCode 1854. 人口最多的年份(差分)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 logs ,其中每个 logs[i] [birthi, deathi] 表示第 i 个人的出生和死亡年份。 年份 x 的 人口 定义为这一年期间活着的人的数目。 第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, dea…

服务端_说说Netty服务端启动流程

点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章本文来源:http://yeming.me/2016/03/12/netty1/netty服务端代码分析服务端启动配置对于 ServerBootstrap:ServerBootstrap继承于 AbstractBootstrap,它从父类继承…

ztree在刷新时第一个父节点消失_第一个关于中式菜谱的智能问答机器人小程序正式上线啦...

为了满足大家对菜品烹饪的各类问题能直接得到答案的需求,我开发了目前第一个真正关于菜谱的智能问答系统,并在微信小程序发布上线。这套系统支持对于8600多种菜品的问答功能,并能实现快速问答响应,整套系统后端依托于搭建的中式菜…

LeetCode 1855. 下标对中的最大距离(双指针)

文章目录1. 题目2. 解题1. 题目 给你两个 非递增 的整数数组 nums1​​​​​​ 和 nums2​​​​​​ &#xff0c;数组下标均 从 0 开始 计数。 下标对 (i, j) 中 0 < i < nums1.length 且 0 < j < nums2.length 。如果该下标对同时满足 i < j 且 nums1[i] …

【Python基础知识-pycharm版】第一节-基础

python第一节特点Python 解释器python开发环境交互模式IDLE开发环境使用入门程序基本格式图形化程序设计python程序的构成python程序的对象python的引用python的标识符标识符命名规则变量和简单赋值语句删除变量和垃圾回收机制Python 是一种解释型、面向对象的语言。 官网&…

c++对象回收string类型成员时coredump_本体技术视点 | 虚拟机中引用性动态语言对象模型思考...

1引言Ontology 的 NeoVM 虚拟机新增加了 DCALL、HAS_KEY、KEYS 以及 VALUES 等几条新的指令。因此&#xff0c;基于 NeoVM 的引用性动态语言对象的设计理论上可行&#xff0c;这可使得当前语言的支持能更接近原生语义。对象模型设计的必要性Ontology NeoVM 对用户暴露的对象语义…

LeetCode 1856. 子数组最小乘积的最大值(前缀和 + 单调栈)

文章目录1. 题目2. 解题1. 题目 一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。 比方说&#xff0c;数组 [3,2,5] &#xff08;最小值是 2&#xff09;的最小乘积为 2 * (325) 2 * 10 20 。 给你一个正整数数组 nums &#xff0c;请你返回 nums 任意 非空…

【Python基础知识-pycharm版】第二节-赋值/数据类型/时间点/运算符/字符串

python第二节链式赋值_系列解包赋值内置数据类型时间表示unix时间点多点坐标绘出折线图运算符字符串部分来源&#xff1a;1.https://blog.csdn.net/wys103158/article/details/964882382.https://www.cnblogs.com/jack-zh/p/10810569.html3.http://c.biancheng.net/view/4258.h…

LeetCode 1859. 将句子排序

文章目录1. 题目2. 解题1. 题目 一个 句子 指的是一个序列的单词用单个空格连接起来&#xff0c;且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。 我们可以给一个句子添加 从 1 开始的单词位置索引 &#xff0c;并且将句子中所有单词 打乱顺序 。 比方说&a…

java 拦截器_Spring的春天来啦——百战Java课程更新(2019.09.06)

百战程序员运营400天&#xff0c;课程突破10000节&#xff0c;周周有新课更新&#xff0c;保持行业领先&#xff0c;九大专业运营。注册人数突破70万人&#xff0c;超级VIP用户累计8358人。百战程序员&#xff0c;由50专家、精英讲师组成课程研究院&#xff0c;根据市场发展和企…

LeetCode 1860. 增长的内存泄露(等差数列)

文章目录1. 题目2. 解题1. 题目 给你两个整数 memory1 和 memory2 分别表示两个内存条剩余可用内存的位数。 现在有一个程序每秒递增的速度消耗着内存。 在第 i 秒&#xff08;秒数从 1 开始&#xff09;&#xff0c;有 i 位内存被分配到 剩余内存较多 的内存条&#xff08;如…

argumentoutofrangeexception:长度不能小于0_数组长度属性背后的魔力有哪些?

开发人员每天都会处理数组。作为集合&#xff0c;要查询的重要属性是项目数&#xff1a;Array.prototype.length。在JavaScript中&#xff0c;length它并不总是指示现有元素的数量&#xff08;对于稀疏数组&#xff09;&#xff0c;并且修改此属性可能会删除元素。让我们揭开这…

【Python基础知识-pycharm版】第四节-元组

元组元组的创建元组的元素访问和计数生成器推导式创建元组列表属于可变序列&#xff0c;可以任意修改列表中的元素&#xff0c;元组属于不可变序列&#xff0c;不能修改元组中的元素。因此&#xff0c;元组没有增加元素、修改元素、删除元素相关的方法。 因此&#xff0c;我们只…