如何在给定SHA1的情况下获取git中(仅)作者姓名或电子邮件?

71

我想查找作者的电子邮件和名字,姓氏以验证是谁在推送到我的存储库。

是否有办法在git中使用命令来显示提交的SHA1值,给出提交的SHA1值后只显示提交者的姓名/电子邮件?

这是我想到的方法,但远非理想的解决方案(第一个解决方案适用于git挂钩,因此它使用了2个带有rev-list的SHA1。第二个解决方案简单地使用git show):

git rev-list -n 1 --pretty=short  ccd3970..6ddf170 | grep Author | cut -d ' ' -f2- | rev | cut -d ' ' -f2- | rev
git show 6ddf170 | grep Author | cut -d ' ' -f2- | rev | cut -d ' ' -f2- | rev 
4个回答

100

您可以使用以下命令:

 git log --format='%ae' HASH^!

它也适用于 git show。您需要包含-s以抑制差异。

git show -s --format='%ae' HASH

3
git show 命令可以正常工作,但是它会先显示由 format 参数指定的提交信息,然后显示差异。如果想要抑制差异的显示,需要添加 -s 选项(即 --no-patch)。 - user743382
3
明白了。最好的方法是简单地运行以下命令:git show -s --format='%ae' HASH,其中的HASH是指特定提交的哈希值。 - Igal S.
4
另一个同样简单的选择是 git log -1 --format='%ae' HASH,这将得到相同的结果 :) - user743382

26
git show <commit_id> | grep Author

使用 git show + 管道符 + grep 的方式是有效的!


13

这将显示- SHA、提交者电子邮件、作者电子邮件

git log --pretty=format:"%h %ce %ae"

为此,您需要在末尾添加HASH,否则它会生成所有提交的输出,而不是单个提交的输出。 - Damian

1
如果你想要作者的名字而不是电子邮件,可以使用以下代码:
git show -s --format='%an' HASH

与其他答案不同的是格式字符串(%an%ae)。


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