百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

一个命令巧妙查看git版本演变史

wptr33 2025-01-16 21:11 16 浏览

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试


如何使用 git 命令查看 commit 演进历史呢?

可以使用 git log 加相关参数实现:

  • $ pwd
  • $ ll
  • $ cd git-rainbow/
  • $ ll
  • $ cd mtxcrm/
  • $ ls -la


例如:--oneline ,可以实现查看git版本历史的commit简要列表:

git log--oneline


根据列表信息,可以查看每次版本变更都变更了哪些信息,当然信息比较简洁。从以上截图信息可知,一共发生了4次版本变更,分别执行的都是 move、add、重命名、新增文件操作,--oneline 这个参数在查找每次提交具体内容上还有很有帮助的。


也可以指定最近几次的commit, 也就是仅仅只关心最近几次的 commit的信息查看,比如,查看最近2次的commit操作:

git log -n2


当然带n参数的这个git命令也可以组合oneline参数使用:

git log -n2 --oneline


存在多个分支的情况下,如何使用 git log 命令呢?

比如,我们查看下本地有多少个分支?

git branch -v


从截图返回结果可见,当前只有 master 分支,创建一个新的临时的分支,叫 temp

git log

git checkout -b temp cb8ec5dc05341d784934c912


对 a.txt 文件稍作修改

ls -la

vi a.txt


ls -la


然后执行一次 commit 提交操作:

git commit -m'modify a.txt'

从如下截图所示提示信息可知,提交时需要加-a 参数:


git commit -am'modify a.txt'


然后我们再次查看下当前目录下分支总数:

git branch -av


免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦


从以上截图可知,一共有两个分支,分别是 master、temp,并且我当前所在分支是 temp,此时使用 git log(后面不加任何参数的情况下)查看的是当前分支 temp 的历史提交信息列表:

git log


  • HEAD 指向的是 temp
  • HEAD 没有指向 master


所有分支的演进历史如何全部都查看到呢?

此时可以增加--all 参数,来查看所有分支的演进历史:

git log --all


如果有10个分支,通过--all 参数,可以列出 10 个分支对应的 commit 历史演进信息,还可以图形化形式展示演进的历史:

git log --all --graph


从以上截图能清楚的看到,master 是有 3 个 commit 演进历史信息,如果只想查看就近的 n 个全部分支的演进历史,可以使用以下命令:

git log --all -n3


查看最近 3 个全部分支的演进历史,以下命令是以图形的方式查看最近 3 个全部分支演进历史:

gitlog --all -n3 --graph


注意,这里的-n3 是指所有分支取最近 3 次的 commit 记录,而不是当前分支的,如果加了--all 参数,再指定 temp 分支,统计的是 temp 分支的还是全部分支的呢?

git log --oneline --all temp -n3

从如下截图所示命令的返回可见,仍是是统计全部全部分支的 commit 提交信息的前 3 个,后面配的 temp 分支没有起到作用:


如果没有--all 参数,指定 temp 分支,则 git log 命令的返回结果是 temp 分支的 commit 演 进历史

git log --oneline temp


如果没有--all 参数,指定 master 分支,则 git log 命令的返回结果是 master 分支的 commit 演进历史

git log --oneline master


可见在加了--all 参数后,即使再指定任何分支的情况下,还是以--all 参数,也就是全部分支的基础获取 commit 演进历史,指定的分支设置不起作用。


以上这些是比较场景的git log命令,如果忘记git log参数,或者想查看其他git log的参数列表,可以使用git log的帮助命令进行查看

git help --web log

git log 的参数接口非常多:


END

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关推荐

十年之重修Redis原理(redis重试机制)

弱小和无知并不是生存的障碍,傲慢才是。--------面试者...

Redis 中ZSET数据类型命令使用及对应场景总结

1.zadd添加元素zaddkeyscoremember...

redis总结(redis常用)

RedisTemplate封装的工具类packagehk.com.easyview.common.helper;importcom.alibaba.fastjson.JSONObject;...

配置热更新系统(如何实现热更新)

整体设计概览┌────────────┐┌────────────────┐┌────────────┐│配置后台服务│--写入-->│Red...

java高级用法之:调用本地方法的利器JNA

简介JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做javanativeinterface。要想使用JNI,我们需要在JAVA代码中定义native方法,然后通过javah命令...

SpringBoot:如何优雅地进行响应数据封装、异常处理

背景越来越多的项目开始基于前后端分离的模式进行开发,这对后端接口的报文格式便有了一定的要求。通常,我们会采用JSON格式作为前后端交换数据格式,从而减少沟通成本等。...

Java中有了基本类型为什么还要有包装类型(封装类型)

Java中基本数据类型与包装类型有:...

java面向对象三大特性:封装、继承、多态——举例说明(转载)

概念封装:封装就是将客观的事物抽象成类,类中存在属于这个类的属性和方法。...

java 面向对象编程:封装、继承、多态

Java中的封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)是面向对象编程的三大基本概念。它们有助于提高代码的可重用性、可扩展性和可维护性。...

怎样解析java中的封装(怎样解析java中的封装文件)

1.解析java中的封装1.1以生活中的例子为例,打开电视机的时候你只需要按下开关键,电视机就会打开,我们通过这个操作我们可以去间接的对电视机里面的元器件进行亮屏和显示界面操作,具体怎么实现我们并不...

python 示例代码(python代码详解)

以下是35个python代码示例,涵盖了从基础到高级的各种应用场景。这些示例旨在帮助你学习和理解python编程的各个方面。1.Hello,World!#python...

python 进阶突破——内置模块(Standard Library)

Python提供了丰富的内置模块(StandardLibrary),无需安装即可直接使用。以下是一些常用的内置模块及其主要功能:1.文件与系统操作...

Python程序员如何调试和分析Python脚本程序?附代码实现

调试和分析Python脚本程序调试技术和分析技术在Python开发中发挥着重要作用。调试器可以设置条件断点,帮助程序员分析所有代码。而分析器可以运行程序,并提供运行时的详细信息,同时也能找出程序中的性...

python中,函数和方法异同点(python方法和函数的区别)

在Python中,函数(Function)...

Python入门基础命令详解(python基础入门教程)

以下是Python基本命令的详解指南,专为初学者设计,涵盖基础语法、常用操作和实用示例:Python基本命令详解:入门必备指南1.Python简介特点:简洁易读、跨平台、丰富的库支持...