自定义日志格式在输出结束时省略换行符

时间:2012-01-25 17:28:26

标签: git

我正在关注gitimmersion.com上的git教程并设置别名hist以显示自定义的漂亮日志输出。

当我禁用git的寻呼机(将GIT_PAGER设置为空或cat)时,输出会在末尾省略换行符。

这就是我所看到的:

work/lab_10$ git hist
* 88976c6 2011-01-19 | Added a comment (HEAD, v1, master) [Jim Weirich]
* b819ef8 2011-01-19 | Added a default value (v1-beta) [Jim Weirich]
* ff07fc9 2011-01-19 | Using ARGV [Jim Weirich]
* b73dc5c 2011-01-19 | First Commit [Jim Weirich]work/lab_10$

请注意,shell提示符显示在可打印输出的最后一个字符之后,没有换行符。

比较,这是我在使用标准漂亮格式时看到的内容:

work/lab_10$ git log --pretty=oneline
88976c644e65afa697b58fc940eb8f94c47f8129 Added a comment
b819ef832effdaea8c0e33b1fea36ea4071c61b9 Added a default value
ff07fc93d3e2e5522e5607c9952cbad10cfa1144 Using ARGV
b73dc5c1579756f4e9a4f91a90384c47288023b0 First Commit
work/lab_10$ 

在这种情况下,会出现下一个提示之前的换行符。

以下是别名的定义:

[alias]
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short

当我没有使用寻呼机时,有没有办法让git log包含最终换行符?

1 个答案:

答案 0 :(得分:55)

尝试

hist = log --pretty="tformat:\"%h %ad | %s%d [%an]\"" --graph --date=short

format在提交之间放置换行符tformat在每次提交之后将换行符放在之后,也放在最后一次提交之后。

有关详细信息,请参阅git-log(1)