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

如何在Git中对比指定提交范围差异并忽略合并提交?

解决方法:忽略master合并内容,仅评审feature分支的修复变更

针对你这种在feature分支多次合并master后,只想评审F到O之间的修复变更(排除master合并内容)的情况,这里有几个实用的Git命令方案,不用变基也能搞定:

1. 先确认要评审的提交范围

首先,你可以先列出F到O之间仅属于feature分支的修复提交(自动排除master合并过来的内容和合并提交):

git log --oneline --no-merges F..O --not master
  • --no-merges:过滤掉所有合并提交(那些把master合并到feature的提交)
  • --not master:排除所有在master分支上已经存在的提交
    这样输出的就是你真正需要评审的修复提交列表,一目了然。

2. 查看修复提交的总变更对比

如果想一次性对比这些修复内容相对于F的整体差异,用这个命令:

git diff F O -- $(git diff --name-only F O --not master)

它的逻辑是:

  1. 先通过git diff --name-only F O --not master找出F到O之间,仅在feature分支上修改的文件
  2. 再用git diff F O只对比这些文件的差异,自动忽略master合并带来的内容

3. 逐个查看单个修复提交的细节

如果需要逐个评审每个修复提交的具体改动,用这个命令直接显示每个提交的diff:

git log --patch --no-merges F..O --not master

这样会按提交顺序,依次展示每个修复提交的代码变更,方便你逐行评审。

4. 快速定位feature独有的提交

还可以用git cherry命令,快速标记出feature分支上相对于master的独有提交:

git cherry master F O

输出中标记为+的就是你需要评审的修复提交,之后可以用git show <提交ID>查看单个提交的详细diff。

这些方法都不需要变基操作,完美避开你提到的变基困难问题,直接聚焦在你需要评审的修复内容上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:28:19