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

如何列出指定提交/时间点后合并到分支的所有合并记录?

查看指定提交后合并到目标分支的合并记录(含源分支)

命令行方案

1. 快速筛选合并提交

直接用git log精准定位目标范围内的合并记录,同时输出关键信息:

git log 9de0a508..dev --merges --pretty=format:"%h | %s | Parent Hashes: %P"
  • 9de0a508..dev:限定查询范围是提交9de0a508之后到当前dev分支的所有提交
  • --merges:只保留合并提交(这类提交有多个父节点,是分支合并产生的)
  • --pretty=format:自定义输出格式,%h是短提交哈希,%s是提交标题,%P是所有父提交的哈希值,方便后续溯源

2. 自动识别源分支

如果合并提交的备注里没写源分支,用下面的脚本自动匹配:

git log 9de0a508..dev --merges --pretty=format:"Merge: %h | Message: %s | Parent: %P" | while read line; do
  parent_hash=$(echo "$line" | awk '{print $7}')
  source_branch=$(git branch --contains $parent_hash | grep -v "*" | head -n1)
  echo "$line | Source Branch: $source_branch"
done

原理是合并提交的第二个父哈希(%P输出的第二个值)一般是被合并分支的最后提交,通过git branch --contains找到包含该提交的分支,就能得到源分支名称。

3. 按时间点筛选

如果要按时间而非提交哈希划分范围,把起始提交换成时间参数:

git log --since="2024-03-01" dev --merges --pretty=format:"%h | %s | Parent Hashes: %P"

时间格式支持多种写法,比如"2 weeks ago"也可以。

TortoiseGit图形化方案

1. 打开日志筛选界面

右键仓库文件夹 → 选TortoiseGit → Show Log

2. 设置筛选条件

  • 点击日志窗口顶部的漏斗图标(Filter按钮)
  • 在筛选弹窗里:
    • 勾选Only merge commits,只显示合并记录
    • 在From输入框填目标提交哈希9de0a508,或者点日历图标选时间点
    • 点OK应用筛选,日志列表就会只显示符合条件的合并提交

3. 查看源分支信息

  • 选中一条合并记录,右键 → 选Browse reference log
  • 在弹出的窗口里,查看该合并提交的第二个父提交对应的分支;如果合并时备注了源分支,直接看提交信息栏就能看到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:32:14