能否使用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
相关产品推荐
相关产品推荐

