这个问题已经有了答案:
Custom log format omits newline at end of output
1个答案
我有一个小剧本:

echo "Total commits: "
git log --all --pretty=format:"%h %ad | %s%d [%an]" --date=short | wc -l
echo "Total no-merge commits: "
git log --all --pretty=format:"%h %ad | %s%d [%an]" --date=short --no-merges | wc -l
echo "Total merge commits: "
git log --all --pretty=format:"%h %ad | %s%d [%an]" --date=short --merges | wc -l

我知道代码不是最优的。
我剧本的结果是:
Total commits:
1000
Total no-merge commits:
817
Total merge commits:
182

问题:为什么不合并和合并提交的总和(182+817=999)低于提交总数(1000)?

最佳答案

这些日志命令的输出使用\n作为分隔符,而不是结束符,因此您的wc -l计数都很短。你真的有:

1001 = 818 + 183

提交,加起来。
git help log
tformat:格式的工作方式与format:完全相同,只是
提供“终止符”语义而不是“分隔符”语义。
换句话说,每个提交都有消息终止符字符
(通常是换行)附加,而不是放置分隔符
在条目之间。这意味着最后一行
格式将以新行正确终止,就像
“单行”格式。

08-26 21:36