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

如何在Git自定义pretty格式中仅为合并提交添加Merge行?

实现git-log仅为多父提交显式添加Merge行

完全可以实现,利用git-log的条件格式化占位符就能精准控制只在合并提交(拥有多个父提交)时显示Merge: %p%n行。

核心实现逻辑

git的pretty格式支持%?<条件>:<满足条件时输出的内容>?<不满足时输出的内容>语法:

  • 条件部分用%p(提交的父提交短哈希,合并提交会返回多个空格分隔的哈希,普通提交仅返回一个或空)
  • 当条件为非空且包含多个父哈希时,输出Merge: %p%n;否则跳过该行

具体命令示例

基础自定义格式示例

如果需要构建包含Merge行、作者、日期、提交信息的格式,命令如下:

git log --pretty='%?%p:Merge: %p%n?%nAuthor: %an <%ae>%nDate:   %ad%n%n    %B'
  • 合并提交会在Author行前显示Merge: <父哈希1> <父哈希2>
  • 普通提交直接显示Author行,无多余空行

适配已有自定义格式

假设你原本的自定义格式是:

git log --pretty='Author: %an <%ae>%nDate: %ad%n%n%s'

只需在Author行前插入条件判断语句,修改后:

git log --pretty='%?%p:Merge: %p%n?Author: %an <%ae>%nDate: %ad%n%n%s'

额外说明

  • 若需要显示父提交的完整哈希,将%p替换为%P即可
  • 初始提交(无父提交)的%p为空,不会触发Merge行输出,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:47:44