超级详细Git操作 之git log 命令的参数详解

这篇具有很好参考价值的文章主要介绍了超级详细Git操作 之git log 命令的参数详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git log命令主要用于查看Git版本演变历史(也就是提交历史),同时根据追加的参数和选项不同,也会有不同的展示效果。

但默认git log命令显示出的x效果实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了!

1、git log命令说明

git log用于查询版本的历史,命令形式如下:

git log [<options>] [<since>..<until>] [[--] <path>...]

默认的git log命令显示效果如下:

git log命令详解,Git,git,github

(之前文件详细说明过了,这里简单说一下,主要说明git log命令的参数)

2、git log命令参数

这条命令有很多参数选项,下面详细的说明:

(1)不带参数

  1. 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者、提交日期、和提交说明
  2. 如果记录过多,则按上下键Enter(向下显示一行),空格(显示下一页),来控制显示。
  3. q键退出历史记录列表。

(2)常用显示参数

  1. -p:按补丁格式显示每个更新的差异,比下一条--stat命令信息更全。
  2. --stat:显示每次提交修改文件的统计信息,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计。
  3. --shortstat:只显示--stat中最后的行数添加、修改、删除的统计。
  4. --name-only:仅在提交信息后,显示已修改的文件清单。
  5. --name-status:显示新增、修改、删除的文件清单。
  6. --abbrev-commit:仅显示SHA-1校验和的前几个字符,而非所有的40个字符。
  7. --relative-date:使用较短的相对时间,而不是完整格式显示日期(比如“2 weeks ago”)。
  8. --graph:在日志旁以 ASCII 图形显示分支与合并历史。
  9. --online:列表的形式查看历史版本记录,--pretty=oneline --abbrev-commit 合用的简写。
  10. --pretty:使用其他格式显示历史提交信息。可用的选项包括onelineshortfullfullerformat(用来定义自己的格式)。

(3)--pretty参数

--pretty:自定义格式化显示历史提交信息。

选项有:

1)--pretty=oneline:一行显示,只显示哈希值和提交说明(--online本身也可以作为单独的属性)。

2)--pretty=format:” ":控制显示信息的格式。

序号 格式 说明
1 %H 提交的完整哈希值(commit-id)。
2 %h 提交的简写哈希值。
3 %T 树的完整哈希值(tree)。
4 %t 树的简写哈希值。
5 %P 父提交(parent)的完整哈希值。
6 %p 父提交的简写哈希值。
7 %an 作者名字(author)。
8 %ae 作者的电子邮件地址。
9 %ad 作者修订日期(可以用 --date=选项 来定制格式)。
10 %ar 作者修订日期,按多久以前的方式显示。
11 %cn 提交者的名字(committer)。
12 %ce 提交者的电子邮件地址。
13 %cd 提交日期(可以用 --date=选项 来定制格式)。
14 %cr 提交日期,按多久以前的方式显示。
15 %s 提交说明。

3)--pretty=format:” ":控制显示信息的颜色。

  1. 颜色格式:

    %Cred:将颜色切换为红色

    %Cgreen:将颜色切换为绿色

    %Cblue:将颜色切换为蓝色

    %Creset:空格

  2. 举例:

    执行命令:git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
    两种效果如下:

    git log命令详解,Git,git,github

  3. 我们先进行断句分析:[%Cred%h][%Creset -][%C(yellow)%d ][%Cblue%s][%Cgreen(%cd)][%C(bold blue)<%an>]
    然后就是很明显能得到的规律了:

    • 写法:一个颜色+一个内容,例如%Cred%h,依次排写。
    • 颜色以%C开头,后边接几种颜色,还可以设置字体,如果要设置字体的话,要一块加个括号。
      能设置的颜色值包括:reset(默认的灰色),normalblackredgreenyellowbluemagentacyanwhite。(不能单独使用就加括号)
      字体属性则有bolddimulblinkreverse
    • 内容可以是占位元字符,也可以是直接显示的普通字符(例如上面的-

(4)--date=参数

--date=(relative|local|default|iso|rfc|short|raw)

仅对以人类可读格式显示的日期生效,例如使用--pretty.log.date这个config变量设置日志的默认值。

--date有几个默认选项:

  1. --date=relative:显示相对于当前时间的日期,例如"2小时前"。
  2. --date=local:显示用户本地时区中的时间戳。
  3. --date=iso--date=iso8601:以ISO 8601格式显示时间戳。
  4. --date=rfc--date=rfc2822:以RFC 2822格式显示时间戳,通常在电子邮件中找到。
  5. --date=short:仅以YYYY-MM-DD格式显示日期,而不显示时间。
  6. --date=raw:以内部原始Git格式%s %z格式显示日期。
  7. --date=default:显示原始时区(提交者或作者)的时间戳。

也可以自定义格式(需要git版本2.6.0以上)

比如:--date=format:'%Y-%m-%d %H:%M:%S',会格式化成:2016-01-13 11:32:13

其他的格式化占位符如下:

  1. %a:星期的缩写。
  2. %A:星期的全名。
  3. %b:月份的缩写。
  4. %B:月份的全称。
  5. %c:适用于区域设置的日期和时间表示。
  6. %d:月中的天作为十进制数字(01 – 31)。
  7. %H: 24小时制的小时(00 – 23)。
  8. %I:2小时格式的小时(01 – 12)。
  9. %j:一年中的天作为十进制数字(001 – 366)。
  10. %m:以十进制数字表示的月份(01 – 12)。
  11. %M:分钟以十进制数字表示(00 – 59)。
  12. %p:当前语言环境的"上午/下午",12小时制的指示器。
  13. %S:秒作为十进制数字(00 – 59)。
  14. %U:一年中的周为十进制数字,周日为一周的第一天(00 – 53)。
  15. %w:工作日为十进制数字(0 – 6;星期日为0)。
  16. %W:一年中的星期作为十进制数字,星期一作为星期的第一天(00 – 53)
  17. %x:当前语言环境的日期表示。
  18. %X:当前语言环境的时间表示。
  19. %y:无世纪的年份,为十进制数字(00 – 99),也就是年份没有前两位。
  20. %Y:带世纪的年份,以十进制数表示。
  21. %z%Z:时区名称或时区缩写,取决于注册表设置; 如果时区未知,则没有字符。
  22. %%:表示百分号。

(5)筛选参数

1)按数量

  • -n:显示前n条提交信息。

2)按日期

  1. --after=
    1. 比如git log --after="2014-7-1”,显示2014年7月1号之后的commit(包含7月1号)。
    2. 后边的日期还可以用相对时间表示,比如"1 week ago"”yesterday",比如git log --after="yesterday"
  2. --before=:同上。

另外这两条命令可以同时使用表示时间段,比如git log --after="2014-7-1" --before="2014-7-4"

同理:--since--until--after--before是一个意思。

--since, --after:仅显示指定时间之后的提交。

--until, --before:仅显示指定时间之前的提交。

3)按作者和提交者

--author=:仅显示作者匹配指定字符串的提交。

  1. 比如git log --author=“John",显示John贡献的commit。
  2. 注意:作者名不需要精确匹配,只需要包含就行了。
  3. 而且可以使用正则表达式,比如git log --author="John|Mary”,搜索Marry和John贡献的commit。
  4. 而且这个--author不仅包含作者名,还包含作者的email,所以你可以用这个搜索email。

--committer:仅显示提交者匹配指定字符串的提交。

4)按commit描述

--grep=:仅显示提交说明中包含指定字符串的提交。

  1. 比如:git log --grep="JRA-224"
  2. 而且可以传入-i用来忽略大小写。
  3. 注意:如果想同时使用--grep--author,必须在附加一个--all-match参数。

5)按文件

--(空格)文件--[后边没有文件]

  1. 有时你可能只对某个文件的修改感兴趣,或你只想查看跟某个文件相关的历史信息,你只需要插入你感兴趣文件的路径,[对,是路径,所以经常是不太好用]就可以了。
  2. 比如:git log -- foo.py bar.py ,只返回和foo.py文件或bar.py文件的相关commit。
  3. 这里的--是告诉Git,后面的参数是文件路径而不是branch(分支)的名字。 如果后面的文件路径不会和某个branch产生混淆,你可以省略--,比如git log foo.py
  4. 另外,后边的路径还支持正则,比如:git log *install.md ,是指定项目路径下的所有以install.md结尾文件的提交历史。
  5. 另外,文件名应该放到参数的最后位置,通常在前面加上--并用空格隔开表示是文件。
  6. 另外,git log file/,可以查看file文件夹下所有文件的提交记录。

6)按分支

--

  1. --branchName branchName参数:为任意一个分支名字,查看某个分支上的提交记录。

  2. 需要放到参数中的最后位置处。

  3. 如果分支名与文件名相同,系统会提示错误,可通过--选项,来指定给定的参数,是分支名还是文件名。

    比如:在当前分支中有一个名为v1的文件,同时还存在一个名为v1的分支。如下:

    git log v1 --,此时的v1代表的是分支名字(--后边是空的)。

    git log -- v1,此时的v1代表的是名为v1的文件。

    git log v1 -- v1:代表v1分支下的v1文件。

7)按内容

-S"<string>"-G"<string>":仅显示添加或删除内容匹配指定字符串的提交。

  1. 有时你想搜索,新增或删除某行代码相关的commit. 可以使用这条命令。
  2. 假设你想知道Hello,World!这句话,是什么时候加入到项目里去的,可以用:git log -S"Hello,World!"
  3. 另外,如果你想使用正则表达式去匹配,而不是字符串,那么你可以使用-G代替-S
  4. 这是一个非常有用的debug工具,使用他可以定位所有跟某行代码相关的commit,甚至可以查看某行是什么时候被copy的,什么时候移到另外一个文件中去的。
  5. 注意:-S后没有"=",与查询内容之间也没有空格符。

8)按范围

git log <since>..<until>

  1. 这个命令可以查看某个范围的commit。
  2. 这个命令非常有用当你使用branch做为range参数的时候. 能很方便的显示2个branch(分支)之间的不同。
  3. 比如:git log master..featuremaster..feature这个range(范围),包含了在feature分支存在,而在master分支没有的所有commit。同样,如果是feature..master,意思是包含所有master分支有,但是feature分支没有的commit。
  4. 另外,如果是三个点,表示或的意思:git log master...test,意思是查询mastertest分支中的提交记录。

9)过滤掉merge commit

--no-merges

  1. 默认情况下git log会输出merge commit(合并提交)。你可以通过--no-merges标记来过滤掉merge commit,例如:git log --no-merges
  2. 另外,如果你只对merge commit感兴趣可以使用--merges参数,例如:git log --merges

10)按标签tag

git log v1.0

  1. 直接这样是查询标签之前的commit。
  2. 加两个点,例如:git log v1.0..,是查询从v1.0以后的提交历史记录(不包含v1.0)。

11)按commit

  1. git log commit:查询commit之前的记录,包含commit。
  2. git log commit1 commit2:查询commit1与commit2之间的记录,包括commit1和commit2。
  3. git log commit1..commit2:同上,但是不包括commit1。

说明:

  • 其中,commit可以是提交哈希值的简写模式,也可以使用HEAD代替。
  • HEAD代表最后一次提交,HEAD^为最后一个提交的父提交,等同于HEAD~1
  • HEAD~2代表倒数第二次提交。

提示:Git的指令是非常丰富的,通过git help log 或者git help --web log,可以以浏览器的方式查看更多关于log的指令。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

git log命令详解,Git,git,githubgit log命令详解,Git,git,github

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!
git log命令详解,Git,git,github文章来源地址https://www.toymoban.com/news/detail-786215.html

到了这里,关于超级详细Git操作 之git log 命令的参数详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git——IDEA集成GitHub详细操作

    目录 一、 设置GitHub账号 二、分享项目到GitHub 三、push推送本地库到远程库 3.1 第一种方法: 3.2 第二种方法:SSH 四、pull拉取远程库到本地库 五、clone克隆远程库到本地 可以使用下面这个token登录,第一个太慢太慢了,太消耗我的耐心了     这个token怎么获取?  去自己的G

    2024年02月05日
    浏览(33)
  • github代码托管git详细操作指南

    通过git官网下载,链接:https://git-scm.com/download/win(win版、mac版、linux版) 截图如下: 下载完成后显示位置: 双击安装:Git-2.43.0-64-bit.exe 截图如下: 新手全部选中next到最后install安装 安装完成之后如下截图: 通过windows+R输入cmd打开命令窗口,输入git 出现如下信息说明安装

    2024年02月03日
    浏览(26)
  • Git项目同时推送到GitHub和Gitee详细操作

    将Git项目同时推送到GitHub和Gitee的好处如下: 提高代码可见性和协作性:GitHub和Gitee都是知名的代码托管平台,推送代码到这两个平台可以让更多的人看到和使用您的代码,并增加合作机会。 提高项目的可靠性和备份性:将代码推送到多个代码仓库可以提高项目的可靠性和备

    2024年02月04日
    浏览(30)
  • 史上最详细教程------使用git命令将代码上传到GitHub(一看就会)

    计算机专业的朋友们想必肯定听说过git和GitHub这两个名词吧. git是什么呢? 简单来说:git是一款最流行的版本控制工具.通过git可以用来进行代码的提交 更新 下载等. GitHub是什么呢? GitHub是全球最大的代码托管平台,全球的开发人员将自己的代码托管给这个平台.上面有很多开源的

    2024年02月09日
    浏览(62)
  • Git 远程仓库操作命令详解

    远程仓库(remote) 远程库可以多人协同开发 将代码上传到码云 远程库的操作的命令

    2024年02月09日
    浏览(41)
  • Git的基本命令操作超详细解析教程

    Git:一个开源的 分布式版本控制系统 ,它可以在本地和远程仓库之间管理源代码和文档的版本。推荐有Linux基本命令的基础学习更佳,学起来不会枯燥、乏味。 Git安装网址 安装完成后,找到键盘 Win 键按下后,在 开始菜单 中找到刚下载好的 Git Bash 打开git命令行窗口,准备

    2024年02月04日
    浏览(37)
  • 【详细教程】关于如何使用Git&GitHub的基本操作汇总&GitHub的密钥配置 ->(个人学习记录笔记)

    点击 官网链接 后,进入Git官网,下载安装包 然后根据系统类型进行下载,一般为windows 一般选择64位的安装器版本 下载好后开始安装 点击Next 默认即可,Next 默认即可,Next Next Next Next Next Next Next Next Next Next install即可 我们在桌面随便创建一个文件夹例如code 进入code文件夹 鼠

    2024年02月06日
    浏览(45)
  • git介绍,安装(手把手),命令与使用(包含IDEA操作,github,gitee的万字图文详述)

    目录 1.Git 1.1 概述 1.2、版本控制 1.3 版本控制工具 1.3.1 集中式版本控制工具 1.3.2 分布式版本控制工具 1.4 Git简史 1.5 Git 工作机制 1.6 Git 和代码托管中心 2.Git安装 2.1 下载安装包 2.2 选择安装路径 2.3 Git 选项配置 2.4 再次确定 Git 安装目录名 2.5 选择Git 的默认编辑器 2.6 分支名设置

    2024年02月05日
    浏览(35)
  • Git 常用命令详解及如何在IDEA中操作

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月14日
    浏览(24)
  • git/github 常规操作第四篇,如何用命令回退(回滚/还原)代码,看这篇文章就够用了

    当我们代码合并错误,或者代码因为某种原因找不到了,但是在历史版本中有最完整的代码,我们要怎么回滚或回退到对应版本还原代码呢,下面就用两种方式来回退。 第一种方式: 重置reset (谨慎:重置的方式不会保留废弃的提交记录) 1、查看并找到我们要回退的版本号

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包