git shortlog:如何排除“(樱桃摘自承诺____)”等等?

时间:2012-08-10 09:29:18

标签: git cherry-pick git-log

git shortlog可以方便地进行人类可读的变更摘要。但是,当我从主分支中挑选更改时,我使用-x标志到git cherry-pick,因为它记录了从中挑选的提交。这会在短信中造成一些丑陋:

% git shortlog Version-3.5.3..3.5

Dan S (5):
  Fix typo that causes build fail on big-endian archs, thanks Felipe Sateler     (cherry picked from commit 4588258193072cd2fb845f7fb0b4670d6ad5edf2)
  fix build on ARM (where qreal==float); thanks Felipe Sateler     (cherry picked from commit 976d560060185c1e31c9f40660172f0054a4a05c)
  Strip gremlin characters from JITLib wrapForNodeProxy.sc     (cherry picked from commit d0842acae77a90b5eb9811d947ee2dad2282edff)
  choose clipping rather than wraparound for writing integer-format audio     files (libsndfile setting)
  arm build fix: another double->qreal in QcMultiSlider     (cherry picked from commit 548ad319dddf53e4edac1cfa44b3193027eefda2)

有没有一种简单的方法可以告诉git shortlog我们不想要那些挑选线(在实际日志中的新行上)?

当然,我知道可以过滤掉它们,例如使用git shortlog Version-3.5.3..3.5 | sed 's/[(]cherry picked.*$//g'。但似乎git应该知道它自己的注释并能够处理它们。我错过了什么?

2 个答案:

答案 0 :(得分:0)

您可以使用--pretty参数,如果您需要扫描大量日志,它非常有用:

http://gitimmersion.com/lab_10.html

我记得我过去看过很多关于它的资源,但我再也找不到了。无论如何,如果这还不够,请进一步搜索。

答案 1 :(得分:0)

  

有没有一种简单的方法来告诉git shortlog我们不想要那些   樱桃挑选线(在实际日志中的新行上)?

目前,单凭git shortlog没有简单的方法。

这些挑选行添加在提交消息的第二行,因此它们被大多数git工具视为提交标题的一部分。正如Vince建议的那样,可以尝试为短日志条目提供自定义格式(使用--format选项),但是,似乎没有这样的漂亮格式或格式占位符只能返回主题的第一行。 (见man git log

  

但似乎git应该知道它自己的注释并且是   能够处理它们。我错过了什么?

git shortlog实际上似乎只知道[PATCH]前缀(正是在regexp:^\s*\[PATCH[^]]*\]方面)。

总而言之,我认为最好的方法是继续进行sed替换。