在git log的每一行都打印sha

时间:2015-07-06 20:58:30

标签: git

我正在寻找一种以这种格式打印git log的方法:

# sha subject: body
8c75408 commit a: this is a first line of commit a
8c75408 commit a: this is a second line of commit a
5b710e0 commit b: this is a first line of commit b
c59982e commit c: this is a first line of commit c

您可能会注意到,这与grep --with-filename的格式非常相似。

也就是说,它打印带有前缀sha(或其他格式化字符串)的所有提交注释,以便我可以使用| grep 'second line'轻松地在注释中查找特定行。例如,

# after grep
8c75408 commit a: this is a second line of commit a

一些可能的选择是:

  • git log --format='%h %s' --grep 'second line'与我想要的最相似,只是它不会打印匹配的实际行。

    # output
    8c75408 commit a
    
  • git log --format='%h %s:%n%b' --grep 'second line'会打印匹配提交的所有提交消息。

    # output
    8c75408 commit a:
    this is a first line of commit a
    this is a second line of commit a
    

1 个答案:

答案 0 :(得分:0)

我的.gitconfig中有别名

[alias]

    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

在meld的存储库上运行git lg会得到以下输出:

enter image description here

如果这是您想要的,我建议使用GUI,gitk是一个很好的。