Git Show
什么是 git-show?
git-show
是一个命令行实用程序,用于查看有关 blob、树、标记和提交的扩展详细信息。git-show
对每种对象类型都有特定的行为。
标记显示标记消息和标记中包含的其他对象。树显示树中对象的名称和内容。Blob 显示了 blob 的直接内容。提交显示提交日志消息和提交中变更的比对输出。
Git 对象都是通过引用访问的。默认情况下,git-show
会违反 HEAD 引用。HEAD 引用始终指向当前分支的最后一次提交。因此,您可以使用 git-show
来显示最新提交的日志消息和比对输出。
Git-show 选项
<object>…
可以传递对某个对象或对象列表的引用,以检查这些特定对象。如果未传递显式对象,则 git-show
默认为 HEAD 引用。
--pretty[=<format>]
pretty 选项采用辅助格式值,可以是以下值之一:oneline、short、medium、full、fuller、email、raw
和 format:<string>
。如果省略,则格式默认为 medium
。每个格式选项都是一个不同的模板,用于 Git 如何格式化显示输出。<code>oneline</code> 选项对于显示提交列表非常有用
--abbrev-commit
此选项缩短了输出提交 ID 的长度。提交 ID 长 40 个字符,在狭窄的终端屏幕上很难查看。此选项与 --pretty=oneline
组合可以生成高度简洁的 git log
输出。
--no-abbrev-commit
始终显示完整的 40 个字符的提交 ID。这将忽略 --abbrev-commit
和任何其他缩写提交 ID 的选项,例如 --oneline format
相关资料
如何移动完整的 Git 存储库
查看解决方案
了解 Bitbucket Cloud 的 Git
--oneline
这是使用扩展命令 --pretty=oneline --abbrev-commit
的快捷方式
--encoding[=<encoding>]
Git 日志消息上的字符编码默认为 UTF-8。编码选项可以变更为不同的字符编码输出。如果您在具有不同字符编码的环境中使用 Git,例如亚洲语言终端,这很有用。
>--expand-tabs=<n>
--expand-tabs
--no-expand-tabs
这些选项将日志消息输出中的制表符替换为空格。可以设置 n
值来配置制表符扩展到多少空格字符。如果没有明确的 n 值,制表符将扩展为 8 个空格。--no-expand-tabs
等同于 n=0
--notes=<ref>
--no-notes
Git 有一个笔记系统,允许将任意‘笔记’元数据附加到对象。使用 git-show
时,可以隐藏或筛选此数据。
--show-signature
此选项将通过将提交传递给 gpg 子命令来验证提交是否使用加密签名进行签名。
git-show 的 pretty 格式
上面讨论的 --pretty
选项接受几个辅助选项来传递 git-show
输出的格式。下面列出了这些辅助选项以及示例模板
- oneline
<sha1> <title line>
Oneline 尝试将尽可能多的信息压缩到一行中
- 简短
提交 <sha1>
作者:<author>
<title line>
- 中等
提交 <sha1>
作者:<author>
日期:<author date>
<title line>
<full commit message>
- 完整
提交 <sha1>
作者:<author>
提交:<committer>
<title line>
<full commit message>
- 更完整
提交 <sha1>
作者:<author>
作者日期:<author date>
提交:<committer>
提交日期:<committer date>
<title line>
<full commit message>
- 电子邮件
来自 <sha1> <date>
来自:<author>
日期:<author date>
主题:[PATCH] <title line>
<full commit message>
- 原始
原始格式会忽略传递给git-show
的其他直接格式化选项,输出与存储在对象中的提交完全相同。原始格式将忽略--abrev
和--no-abbrev
并始终显示父项提交。
- 格式:
格式允许指定自定义输出格式。它的工作原理类似于 C 语言的printf
命令。--pretty=format
选项采用模板字符串的次要值。该模板可以访问占位符变量,这些变量将由提交对象中的数据填充。这些占位符如下所示:
• %H:提交哈希
• %h:缩写提交哈希
• %T:树哈希
• %t:缩写树哈希
• %P:父项哈希
• %p:缩写的父项哈希
• %an:作者姓名
• %aN:作者姓名
• %ae:作者电子邮件
• %aE:作者电子邮件
• %ad:作者日期(格式遵守 --date= 选项)
• %aD:作者日期,RFC2822 风格
• %ar:作者日期,相对日期
• %at: 作者日期、UNIX 时间戳
• %ai:作者日期,ISO 8601 格式
• %cn:提交者姓名
• %cN:提交者姓名
• %ce:提交者电子邮件
• %cE:提交者电子邮件
• %cd:提交者日期
• %cD:提交者日期,RFC2822 风格
• %cr:提交者日期,相对日期
• %ct:提交者日期、UNIX 时间戳
• %ci:提交者日期,ISO 8601 格式
• %d:引用名称,比如 git-log(1) 的 --decoration 选项
• %e:编码
• %s:主题
• %f:经过清理的主题行,适用于文件名
• %b:正文
• %N:提交备注
• %gD:引用日志选择器,例如 refs/stash@{1}
• %gd:缩短了引用日志选择器,例如 stash@{1}
• %gs:引用日志主题
• %Cred:将颜色切换为红色
• %Cgreen:将颜色切换为绿色
• %Cblue:将颜色切换为蓝色
• %Creset:重置颜色
• %C (...):颜色规范,如 color.branch 中所述。*配置选项
• %m:左侧、右侧或边界标记
• %n:新行
• %%:原始百分比
• %x00:从十六进制代码中打印一个字节
• %w([[, :切换换行,如 git shortlog 的 -w 选项[, ]]])
git-show 的例子
git show --pretty="" --name-only bd61ad98
这将列出提交中涉及的所有文件
git show REVISION:path/to/file
这将显示文件的特定版本。用 Git sha 替换 REVISON
。
git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783
这将显示 v2.0.0 标记,也将在 6ef002d74cbc099e1063728cab14ef1fc49c783
处提交
git show commitA...commitD
这将输出从 commitA
到 commit D
范围内的所有提交
摘要
git-show
是一个非常通用的命令,用于检查 Git 代码存储库中的对象。它可以用来定位特定版本的特定文件。使用 git-show
检查提交范围将输出该范围之间的所有单个提交。git-show
可以成为创建补丁说明和跟踪存储库变更的有用工具。
分享此文章
下一主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。