如何通过哈希值找到一个提交?

392
我需要通过给定的哈希值(SHA)在Git中找到一个提交记录。例如,如果我有“a2c25061”这个哈希值,我需要获取这个提交的作者和提交者信息。
要获得该信息,可以使用以下命令:
``` git show --pretty="%an <%ae> committed on %cd" a2c25061 ```
请注意,此命令中的“a2c25061”应替换为您想要查找的特定哈希值。
3个回答

569

只需使用以下命令

git show a2c25061

32
另外一个不错的选择是git log a2c25061 -n 1,它将仅显示关于该提交的信息,而没有变更内容。 - Hauleth
69
git show a2c25061 --stat 的功能与记忆难度相比,更加简单易记。 - mvp
虽然不是主题,但对于那些想要通过哈希值检出提交记录的人可能非常有用,而不知道旧提交记录是在哪个分支上进行的,只需使用 git checkout a2c25061 即可。 - MahNas92
2
请注意,git log -p -1 <commit_hash>git show <commit_hash> 完全相同 - Gabriel Staples
4
git show a2c25061 -s 是一种更短的方式来抑制差异输出。 - Logan
注意重写提交记录。即使提交记录的源代码树没有更改,您也无法找到提交记录。这是因为提交记录中缺少源代码树的哈希值,除了整个提交记录的哈希值之外。 - Andry

73
git log -1 --format="%an %ae%n%cn %ce" a2c25061

git show文档的漂亮格式(Pretty Formats)部分包含:

  • format:<string>

format:<string>格式允许您指定要显示的信息。 它的工作方式有点像printf格式,但需要注意的是您需要使用%n而不是\n来换行…

占位符包括:

  • %an:作者名字
  • %ae:作者电子邮件
  • %cn:提交者名字
  • %ce:提交者电子邮件

不直接涉及问题,但也许值得一提的是,%s 可以给你提交信息。 - Michael Lihs

29

有两种方法可以实现这个需求。

1. 向 git log 提供您想查看的提交的 SHA

git log -p a2c25061

其中 -p 是 patch 的缩写。

2. 使用 git show

git show a2c25061

这两个命令的输出结果将包括:

  • 提交信息
  • 作者
  • 日期
  • 提交说明
  • 修补程序信息

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接