git log --pretty=format命令中百分号符号的作用是什么?

6
当我运行时
git log --pretty=format:%s -1

我收到了这个反馈:
Merge branch 'feature/416_NewTemplate' into develop%  

出现在白色背景上的黑色文本末尾,有一个百分号标记,但我不知道它是从哪里来的。

我删除了所有的gitconfig别名,因为我认为它可能是从那里来的,但没有变化。

它不是出现在我的提交消息中,因为百分号符号出现在所有提交的末尾:

git log --pretty=format:'%s' -2
Merge branch 'feature/416_NewTemplate' into develop
ft(#416/NewTemplate): resolve merge conflict%  

当我尝试时,没有百分比符号。
git log --pretty=short

Windows操作系统中,使用babun shell zsh时的Git版本为2.17.0。


在 git 1.7.10.4 (debian bash) 上没有复现这个问题。其他漂亮格式的占位符是否正常工作? - Romain Valeri
看起来这是来自于“pretty”选项的输出,因为当我在它上面使用grep时,“%”就消失了:git log -2 --pretty=format:'%h' 09b2b3c1 95da55ac%但是: git log -2 --pretty=format:'%h' | grep 95 95da55ac - Droom
在OS X上,使用2.16.3版本无法重新复制。 - Schwern
1个回答

9

% 表示 zsh 指示输出的最后一行没有被正确终止(没有换行符)。请参阅 http://zsh.sourceforge.net/Doc/Release/Options.html#Prompting 了解更多信息。

git-log 的 man 手册所述,您可能需要使用 --pretty=tformat:%s 而不是 format:

  • tformat:

    tformat: 格式与 format: 完全相同,只是它提供了 "终止符" 语义而不是 "分隔符" 语义。换句话说,每个提交都会附加消息终止字符(通常是换行符),而不是在条目之间放置分隔符。这意味着单行格式的最后一个条目将像 "oneline" 格式一样正确地以新行终止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接