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应该知道它自己的注释并能够处理它们。我错过了什么?
答案 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
替换。