You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用git shortlog命令展示完整的Git提交正文内容?

实现方法

直接执行以下命令即可匹配你需要的输出格式:

git shortlog --format='      %s%n%w(0,8,8)%b%w(0,0,0)'

规则说明:

  • 命令里的%s对应提交标题,前面加6个空格和你要的格式对齐
  • %n是换行符
  • %w(0,8,8)是格式控制符,代表后续的内容不限制自动折行宽度,所有行统一缩进8个空格,刚好满足正文比标题多缩进2格的要求
  • %b对应完整的提交正文
  • 末尾的%w(0,0,0)用来重置缩进规则,避免影响下一条提交的格式

之前尝试无效的原因:

  • 你直接用--format=%B时,git shortlog没有检测到默认用来做统计匹配的提交标题占位符%s,会自动忽略自定义格式走默认输出逻辑,所以看起来没变化
  • 单独用--format=%b时没有配置多行缩进规则,提交正文的多行内容会脱离shortlog的格式体系,看起来就像只返回了第一行

如果使用的Git版本较老,上述命令不生效,可以用Git log配合awk实现:

git log --pretty='%an||%s||%B' | awk -F '\\|\\|' '
{
    cnt[$1]++
    entry[$1] = entry[$1] "\n      " $2
    body = substr($0, index($0, $3))
    gsub(/\n/, "\n        ", body)
    entry[$1] = entry[$1] "\n        " body
}
END {
    for (author in cnt) {
        print author " (" cnt[author] "):" entry[author]
    }
}'

内容的提问来源于stack exchange,提问作者idanp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:09:03