Git log --pretty:仅包括作者名字的第一个字(不包括姓氏)

3

我最近发现了git log --oneline,它非常好用,但是我想在其中看到作者的信息。为此,我想出了以下方法,可以实现这个需求:

git log --pretty=format:"%C(auto)%h%x09%an %x09%s"

现在,我的一些同事的姓氏很长,但他们的名字都不同。 我如何只包括作者的名字并略过姓氏? 这是可能的吗?


您的指令无法工作。此外,名称是通过git config指定的,在同一字符串中存储名字和姓氏。因此,唯一的方法是将git log的输出传递给tr或其他bash实用程序。 - houtanb
啊,我忘记取消转义引号了。我已经更新了命令并测试了它的工作。嗯,使用另一个bash实用程序感觉像是作弊。也许可以在一定数量的字符后省略名称? - Daniel
你可以使用类似于 git log --pretty=format:"%C(auto)%h%x09%<(8,trunc)%an %s" 的方式来省略名称,但这并不是很美观。 - Daniel
配置 Git 日志默认使用 mailmap :请参见 https://dev59.com/w2Yr5IYBdhLWcg3wTYm4 - Andrew C
不知道 mailmap!这似乎是到目前为止最优雅的选择。我会把结果命令发布为答案,供其他遇到这个问题的人使用。 - Daniel
1个回答

3

正如安德鲁C在评论中指出的那样,我们可以使用邮件映射(mailmap)来实现此目的:

首先在存储库根目录中创建.mailmap文件,列出所有贡献者,格式如下:

John <john.doe@example.com> John Doe <john.doe@example.com>

如果您想使用符合 .mailmap 要求的日志格式,请使用以下 git log 格式:

git log --pretty=format:"%C(auto)%h %<(8)%aN %s"

(注意使用%aN,而不是%an)

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