查询Git中展示合并源%A与%B对应来源提交的命令
Git合并操作中%A、%B对应来源提交的查询方案
首先明确基础对应关系:Git合并场景下的%A为执行合并时所处的当前分支(也称ours端/目标分支)的提交,%B为被合并分支(也称theirs端/源分支)的提交。
合并进行中(冲突未解决,适配merge driver开发场景)
Git会为merge进程直接暴露对应变量,你可以直接调用以下命令获取信息,输出可自定义格式适配正则解析:
- 获取提交完整元信息:
# 打印%A对应提交全量信息 git log -1 --pretty=full %A # 打印%B对应提交全量信息 git log -1 --pretty=full %B
- 自定义固定格式输出(适合正则解析,示例格式为
提交哈希|作者名|提交时间|提交标题):
git log -1 --pretty="%H|%an|%ci|%s" %A git log -1 --pretty="%H|%an|%ci|%s" %B
- 适配冲突标记的精简输出:
# 输出仅含短哈希和提交标题,可直接插入冲突标注内容中 echo "Ours (%A): $(git log -1 --pretty="%h %s" %A)" echo "Theirs (%B): $(git log -1 --pretty="%h %s" %B)"
你也可以直接读取merge进程的环境变量GITHEAD_%A_HASH和GITHEAD_%B_HASH获取对应提交的引用名称,不需要额外调用Git命令。
合并已完成后追溯历史合并的%A、%B
已生成的合并提交默认保留两个父提交记录,第一个父提交^1对应当时的%A,第二个父提交^2对应当时的%B,查询命令如下:
# 替换<合并提交哈希>为你要查询的目标合并提交ID # 查询对应%A提交 git log -1 <合并提交哈希>^1 # 查询对应%B提交 git log -1 <合并提交哈希>^2
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

