目录
前言
本问详细的记录(摘抄)一下git log的其他用法。
git log很常见,但也局限于简单的,而且git log后面可以带很多参数并定制化的显示。
正文
git log命令格式
git log [<options>] [<revision-range>] [[--] <path>…]
对应git log不带参数的,下面是显示效果:
$ git log commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt
这里重点介绍带参数的。
主要是自己老是忘记,因此摘抄一下
git log -p
显示每个更新的差异。(可以对比一下不带-p的显示效果)
$ git log -p commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt diff --git a/abc.txt b/abc.txt index e69de29..7984619 100644 --- a/abc.txt +++ b/abc.txt @@ -0,0 +1 @@ +急急急急急急急急急急急急急急急急急急急急急
这里会显示增删的内容(有点类似git diff比较更新文件的差异)。
git log --stat
显示每次提交修改文件的统计信息,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计
$ git log --stat commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt abc.txt | 1 + 1 file changed, 1 insertion(+)
这个比git log显示的信息更多点。
git log --shortstat
这个算是 --stat的缩小版本,只显示--stat
中最后的行数添加、修改、删除的统计。
$ git log --shortstat commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt 1 file changed, 1 insertion(+)
git log --name-only
这仅显示commit信息和修改的文件
$ git log --name-only commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt abc.txt
git log --abbrev-commit
仅显示[哈希值]SHA-1校验和的前几个字符
$ git log --abbrev-commit commit 14743b8 (HEAD -> master) Author: test <test@i.com> Date: Wed Jul 17 14:59:43 2024 +0800 更新abc.txt
更git log显示差不多。
git log --graph
在日志旁以 ASCII 图形显示分支与合并历史
$ git log --graph * commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) | Author: test <test@i.com> | Date: Wed Jul 17 14:59:43 2024 +0800 | | 更新abc.txt | * commit b8815fe32ac5870e6acef2db2f1b6102b3759761 | Author: test <test@i.com> | Date: Wed Jul 17 14:59:08 2024 +0800 | | 新增abc.txt |
我这是临时写的,展示不够明显。
git log --oneline
一行显示,只显示哈希值和提交说明
$ git log --oneline 14743b8 (HEAD -> master) 更新abc.txt b8815fe 新增abc.txt c79116b 新增[欢迎] 6840960 test 1、添加test.txt d787f46 Test 1、新增bg.png de89f18 test 1、新增文件
git log --pretty
可以定制化使用其他格式显示历史提交信息。
--pretty=oneline
$ git log --pretty=oneline 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) 更新abc.txt b8815fe32ac5870e6acef2db2f1b6102b3759761 新增abc.txt c79116bcc0906a635a2896d9d68a9622c0cdbd6b 新增[欢迎] 68409607b1ee9c7dd7814adf58d6cd63473a320a test 1、添加test.txt d787f4609a3a81b658b5f0e00b66c4f05bddfec2 Test 1、新增bg.png de89f18a265ddd7a306db3e9e4caf95ba8bafb0a test 1、新增文件
--pretty=format:"规则"
比如
$ git log --pretty=format:"%Cred%h" 14743b8 b8815fe c79116b 6840960 d787f46 de89f18
简单介绍一下%Cred和%h意思
-
%Cred 颜色换成红色
-
%h 简写的哈希值
再来一个例子,然后继续介绍相关内容。
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
$ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset' * 14743b8 - (HEAD -> master) 更新abc.txt (3 hours ago) <test> * b8815fe - 新增abc.txt (3 hours ago) <test> * c79116b - 新增[欢迎] (3 hours ago) <test> * 6840960 - test 1、添加test.txt (3 hours ago) <test> * d787f46 - Test 1、新增bg.png (3 hours ago) <test> * de89f18 - test 1、新增文件 (3 hours ago) <test>
我这临时git中无法展示graph和颜色,你们自行脑补吧。
控制显示信息的格式
%H 提交的完整哈希值(commit-id)。 %h 提交的简写哈希值。 %T 树的完整哈希值(tree)。 %t 树的简写哈希值。 %P 父提交(parent)的完整哈希值。 %p 父提交的简写哈希值。 %an 作者名字(author)。 %ae 作者的电子邮件地址。 %ad 作者修订日期(可以用 --date=选项 来定制格式)。 %ar 作者修订日期,按多久以前的方式显示。 %cn 提交者的名字(committer)。 %ce 提交者的电子邮件地址。 %cd 提交日期(可以用 --date=选项 来定制格式)。 %cr 提交日期,按多久以前的方式显示。 %s 提交说明。
控制显示信息的颜色
%Cred 将颜色切换为红色 %Cgreen 将颜色切换为绿色 %Cblue 将颜色切换为蓝色 %Creset 空格
当然还有其他颜色可以用,但写法不一样,比如。
# 以黄色显示简写的哈希值 git log --pretty=format:"%C(yellow)%h% # 绿色 git log --pretty=format:"%Cgreen%h%" git log --pretty=format:"%C(green)%h%" # cyan git log --pretty=format:"%C(cyan)%h%"
小结
git log后面还有其他的参数,但使用过于少,这里就不摘抄了。
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
参考文章
-
《》
-
《
历史上的今天
暂无评论...
随机推荐
Android按键音简单源码分析
前言记录一下Android按键音相关分析。记录于此,方便自己查阅和回顾。Android P源码上分析正文当一个View设置点击监听事件setOnClickListener()时,如果用户点击默认就会有按键音,当然如果你不需要,可以通过如下取消。xml配置android:s...
Android app换肤简单记录
前言记录一下换肤的思路,方便自己查阅正文Android换肤已经烂大街了,很多大厂应用都做了,比如QQ、网易云、哔哩哔哩等,这些都是需要VVIP才可以体验的。这里推荐GitHub开源的而且很受欢迎的Android-skin-support,很强大。下面我就整理一下我对换肤的简单理解。换...
Android GridView horizontalSpacing属性值无效
前言Android GridView horizontalSpacing属性值无效解决方式,方便自己查阅。好记性不如烂笔头正文之前一直没注意这个问题,今天调试时发现GridView设置为match_parent后没有horizontalSpacing的属性效果没有实现。android:ho...
木心 :从前慢
记得早先少年时大家诚诚恳恳说一句 是一句 清早上火车站长街黑暗无行人卖豆浆的小店冒着热气 从前的日色变得慢车,马,邮件都慢一生只够爱一个人 从前的锁也好看钥匙精美有样子你锁了 人家就懂了
Android Intent匹配及mimeType匹配
前言activity的启动分为显式调用和隐式调用。显式调用需要明确指定组件的信息。隐式调用是通过匹配目标组件的IntentFilter这里是记录一下如何使用匹配目标组建隐式启动Activity正文通过组建匹配,可以再不知道应用包名的情况启动对应的Activity(或者说应用),一个...
Android中关于焦点的记录
前言焦点管理是Android中比较重要的一个点,这也是Android对播放器的一个约束条件,但手机上的播放器应用都不太准守这个准则,所以就就可以存在混音问题。这里记录一下我自己的理解,当然,由于文笔过于拙,内容不会分享,谢谢。正文代码片段AudioFocusManager.javapu...