目录
前言
本问详细的记录(摘抄)一下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'
参考文章
《》
《
© 版权声明