gpt4 book ai didi

Git 日志表格格式

转载 作者:IT王子 更新时间:2023-10-29 00:52:32 24 4
gpt4 key购买 nike

我有一个简单的别名来显示最近的提交:

log --pretty=format:'%h %an %s' -10

如何使结果显示在列中,如下所示:

898e8789 Author1             Commit message here
803e8759 Other Author name Commit message here

最佳答案

在 Git 1.8.3 及更高版本中,在 pretty format 中有对此的原生支持。 , 使用 %<(<i>N</i>)将下一个占位符格式化为 N 列宽的语法:

$ git log --pretty=format:'%h %<(20)%an %s' -10

对于 1.8.3 之前的版本,此答案的先前版本(保留在下面)应该有效。

这是 Bash 中使用 read 的解决方案将日志行重新分开,然后 printf将它们打印出来,并为作者姓名设置一个固定宽度的字段,以便各列保持对齐。它假设 |永远不会出现在作者的名字中;如果您认为这可能有问题,您可以选择另一个分隔符。

git log --pretty=format:'%h|%an|%s' -10 | 
while IFS='|' read hash author message
do
printf '%s %-20s %s\n' "$hash" "$author" "$message"
done

您可以使用以下方式将其创建为别名:

[alias]
mylog = "!git log --pretty=format:'%h|%an|%s' -10 | while IFS='|' read hash author message; do printf '%s %-20s %s\n' \"$hash\" \"$author\" \"$message\"; done"

我相信您可以使用 awk 以更少的字符完成此操作但作为 the saying去,

Whenever faced with a problem, some people say “Lets use AWK.” Now, they have two problems.

当然,话虽如此,我必须在awk中弄清楚如何去做。这有点短:

git ... | awk -F '|' '{ printf "%s %-20s %s\n", $1, $2, $3 }'

关于Git 日志表格格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3631005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com