我有以下命令可以在命令行中列出本地分支:

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 中都不起作用。

这是它的外观片段:
git 格式化 : truncating with columns-LMLPHP

最佳答案

您正在阅读错误的文档。漂亮的格式不是 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/

10-13 07:55
查看更多