如何使用带有仅提交消息摘要的漂亮或格式的git show?

Wil*_*nce 5 git shell github

输出应类似于git log,没有任何文件和代码更改,只是提交消息简短,如下所示:

commit <sha1>
Author: <author>
Commit: <committer>
<title line>
<full commit message>
Run Code Online (Sandbox Code Playgroud)

我有一些git显示的技巧,其中git的漂亮或格式设置为“完整”,但我不知道如何使用它。

Cod*_*ard 5

我使用这个脚本(作为别名):

\n\n

https://github.com/vheon/home/blob/master/.githelpers

\n\n

git 别名:

\n\n
l = "!bash -c \'source ~/.githelpers && pretty_git_log\'"\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出是这样的:

\n\n

在此输入图像描述

\n\n
\n\n

您必须使用自己的git log --pretty=format选项。

\n\n

在中--pretty您可以设置颜色并选择您想要显示的任何内容

\n\n
\n\n
\n

format:<string>

\n\n

format:格式允许您指定要显示的信息。它的工作方式有点像 printf 格式,但值得注意的例外是换行符为 %n 而不是 \\n。

\n\n

例如,格式:The author of %h was %an, %ar%nThe title was >>%s<<%n会显示如下内容:

\n
\n\n
The author of fe6e0ee was Junio C Hamano, 23 hours ago\nThe title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

The placeholders are

\n\n

%C(\xe2\x80\xa6):颜色规范,如 color.branch.* 配置选项中所述;在开头添加 auto, 仅当为日志输出启用颜色时才会发出颜色(通过 color.diff、color.ui 或 --color,如果我们要访问终端,则尊重前者的自动设置)。单独使用 auto(即 %C(auto))将在下一个占位符上打开自动着色,直到再次切换颜色。

\n\n

%C(\xe2\x80\xa6):颜色规范,如 color.branch.* 配置选项中所述;在开头添加 auto, 仅当为日志输出启用颜色时才会发出颜色(通过 color.diff、color.ui 或 --color,如果我们要访问终端,则尊重前者的自动设置)。单独使用 auto(即 %C(auto))将在下一个占位符上打开自动着色,直到再次切换颜色。

\n\n

%Cblue:将颜色切换为蓝色
\n %Cgreen:将颜色切换为绿色
\n %Cred:将颜色切换为红色
\n %Creset:重置颜色
\n %D:引用名称不带“(”、“)”换行。
\n %G?:显示“G”表示良好签名,“B”表示错误签名,“U”表示良好的、不受信任的签名,“N”表示无签名
\n %GG:来自 GPG 的原始验证消息,表示已签名的提交
\n %GK:显示用于签署签名提交的密钥
\n %GS:显示签名提交的签名者姓名
\n %H:提交哈希
\n %N:提交注释
\n %P:父哈希
\n %T:树哈希
\n %aD:作者日期,RFC2822 样式
\n %aE:作者电子邮件(尊重 .mailmap ,请参阅 git-shortlog(1) 或 git-blame(1))
\n %aI:作者日期,严格的 ISO 8601 格式
\n %aN:作者姓名(尊重 .mailmap,请参阅 git-shortlog(1) 或 git-blame(1))
\ n %ad:作者日期(格式遵循 --date= 选项)
\n %ae:作者电子邮件
\n %ai:作者日期,类似 ISO 8601 的格式
\n %an:作者姓名
\n %ar:作者日期,相对
\n %at:作者日期,UNIX 时间戳
\n %b:正文
\n %cD:提交者日期,RFC2822 样式
\n %cE:提交者电子邮件(尊重 .mailmap,请参阅 git-shortlog(1) 或 git-blame(1))
\n %cI:提交者日期,严格的 ISO 8601 格式
\n %cN:提交者名称(尊重 .mailmap,请参阅 git-shortlog( 1) 或 git-blame(1))
\n %cd:提交者日期(格式遵循 --date= 选项)
\n %ce:提交者电子邮件
\n %ci:提交者日期,类似 ISO 8601 的格式
\n %cn:提交者名称
\n %cr:提交者日期,相对
\n %ct:提交者日期,UNIX 时间戳
\n %d:引用名称,如 git-log(1) 的 --decorate 选项
\n %e:编码
\n %f:净化的主题行,适合文件名
\n %gD:引用日志选择器,例如 refs/stash@{1}
\ n %gE:reflog 身份电子邮件(尊重 .mailmap,请参阅 git-shortlog(1) 或 git-blame(1))
\n %gN:reflog 身份名称(尊重 .mailmap,请参阅 git-shortlog(1) 或 git-blame(1))
\ n %gd:缩短的引用日志选择器,例如 stash@{1}
\n %ge:引用日志身份电子邮件
\n %gn:引用日志身份名称
\n %gs:引用日志主题
\n %h:缩写的提交哈希
\n %m:左、右或边界标记从十六进制代码打印一个字节
\n %n:换行符
\n %p:缩写的父哈希
\n %s:主题
\n %t:缩写的树哈希
\n %w([<w>[,<i1>[,<i2>]]]):切换换行,如 git-shortlog(1) 的 -w 选项。
\n %x00:

\n
\n


Cir*_*四事件 5

git show --format="YOUR_FORMAT" -s

-s 抑制差异显示。

YOUR_FORMAT 记录在:

man git-log
Run Code Online (Sandbox Code Playgroud)

部分 PRETTY FORMATS

例如,要获得一些 SHA 的提交 SHA 和作者电子邮件:

git show --format="%H %ae" -s 62f6870e4e0b384c4bd2d514116247e81b241251 96ee0246ce52012644dd18cf360e64c49016fb7f
Run Code Online (Sandbox Code Playgroud)

给出格式输出:

62f6870e4e0b384c4bd2d514116247e81b241251 author@mail.com
96ee0246ce52012644dd18cf360e64c49016fb7f author@mail.com
Run Code Online (Sandbox Code Playgroud)

要向格式添加换行符和更多字段,您可以执行以下操作:

git show --format=$'%H\n%ae\n%an\n' -s 62f6870e4e0b384c4bd2d514116247e81b241251 96ee0246ce52012644dd18cf360e64c49016fb7f
Run Code Online (Sandbox Code Playgroud)

这给出了表单的输出:

62f6870e4e0b384c4bd2d514116247e81b241251
author@mail.com
Ciro Santilli

96ee0246ce52012644dd18cf360e64c49016fb7f
author@mail.com
Ciro Santilli
Run Code Online (Sandbox Code Playgroud)


Hau*_*eth 0

你应该使用

git log --oneline
Run Code Online (Sandbox Code Playgroud)

仅查看标题和哈希的开头。

欲了解更多信息,请查看git help log