git log漂亮格式可以保留主题中的新行吗?

时间:2016-02-24 12:48:51

标签: python git

我在python脚本中使用此命令生成一个xml文件,该文件稍后由我们的CI系统处理:

git log -1 --date=iso --pretty=format:"<logentry revision=\"%h\" scm=\"git\">%n<author>%an</author>%n<date>%ad</date>%n<msg>%s</msg>%n"

它以下列格式生成输出

<logentry revision="1e370f5" scm="git">
<author>Johan Govers</author>
<date>2016-02-24 13:11:15 +0100</date>
<msg>PP-204 Try out git PP-207 New build script * Add missing kind="file" to path nodes in changes xml file.</msg>

使用git log -1会显示包含换行符的消息,但使用漂亮的格式会将其省略。有没有办法产生如下的输出?

<logentry revision="1e370f5" scm="git">
<author>Johan Govers</author>
<date>2016-02-24 13:11:15 +0100</date>
<msg>PP-204 Try out git 
PP-207 New build script 
* Add missing kind="file" to path nodes in changes xml file.</msg>

1 个答案:

答案 0 :(得分:7)

documentation for git log告诉我们%s适用于主题,它是根据commit message's title(强调我的)构建的:

  

虽然不是必需的,但最好用一个简短(小于50个字符)的行来概括更改,然后是空白行,然后是更详尽的描述。 提交消息中第一个空白行的文本被视为提交标题,并且该标题在整个Git中使用。例如,git-format-patch[1]将提交转换为电子邮件,它使用主题行上的标题和正文中的其余提交。

如果您想使用整个提交消息,请尝试改为%B

  

%B:生体(未包裹的主体和身体)