如何让`git diff-tree -m`命令的输出结果更简洁
解决方案
方法1:使用Git原生格式参数(Git 2.33.0 兼容)
直接通过自定义--pretty格式即可实现需求,无需额外工具处理:
git diff-tree -m --pretty='format:%p' b2
参数说明:
- 保留
-m参数原有逻辑:为合并提交的每个父提交单独生成对比记录 --pretty='format:%p':将提交头输出内容替换为仅输出当前对比对应的父提交哈希,自动省略当前提交哈希、提交说明等冗余信息,输出结果和你期望的格式完全匹配。
方法2:管道过滤(全Git版本兼容)
如果需要更灵活的调整,可以通过sed过滤原有命令的输出:
git diff-tree -m --pretty=oneline b2 | sed -n 's/.*(from \([0-9a-f]*\)).*/\1/p; /^:/p'
命令逻辑:
- 提取每行提交头中
(from后面的父提交哈希单独输出 - 保留所有以
:开头的文件变更记录
内容的提问来源于stack exchange,提问作者mljrg
相关产品推荐
相关产品推荐

