我有以下命令可以在命令行中列出本地分支:
git for-each-ref --sort=committerdate refs/heads/ --format='%(color:yellow)%(refname:short)%(color:reset);(%(color:green)%(committerdate:relative)%(color:reset));%<(70,trunc)(%(contents:subject)%s)' | column -t -s';'
除了
%<(70,trunc)
只是打印出来而不是作为命令应用之外,一切正常。每 the docs :
我认为这不重要,但这在 zsh 或 bash 中都不起作用。
这是它的外观片段:
最佳答案
您正在阅读错误的文档。漂亮的格式不是 for-each-ref
中使用的格式,for-each-ref
的文档中没有任何提示。即使您阅读了漂亮的格式帮助页面,您也会发现这与您使用的占位符完全不匹配。你有 %s
之类的东西,而不是 %(contents:subject)
之类的东西。 (顺便说一句。您的模式中仍然有 %s
将始终打印。
由于您的模式中有 %(contents:subject)
和 %s
,我猜您尝试将 git log
模式转换为 git for-each-ref
模式,但它们完全不同,这就是填充/截断占位符不起作用的原因。它仅以漂亮的格式提供,而不以 for-each-ref 格式提供。
关于git 格式化 : truncating with columns,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43985121/