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

如何用Git CLI复刻IntelliJ的合并提交详情功能

Git CLI 复刻 IntelliJ 合并提交 Combined Diff 及查看冲突文件方法

1. 用原生Git CLI复刻IntelliJ的合并提交Combined Diff

IntelliJ展示的合并提交combined diff,本质是将合并结果分别与两个父提交对比的内容,对应git show <merge_commit_sha> -m的输出。要精确复刻该效果,有两种方式:

  • 使用git show:直接执行
    git show <merge_commit_sha> -m
    
    -m参数会将合并提交拆分为两个虚拟提交,分别与父提交#1、#2进行对比,输出格式和内容与IntelliJ展示的完全一致。
  • 使用git diff:通过组合参数实现
    git diff --cc --combined-all-paths <merge_commit_sha>^!
    
    其中:
    • ^!表示对比合并提交与其所有父提交的差异;
    • --cc生成combined格式的diff,展示合并结果与父提交的对比;
    • --combined-all-paths会显示合并过程中涉及的所有文件(包括无冲突但内容被修改的文件),完整覆盖IntelliJ展示的文件范围。

2. 查看合并提交中需手动解决冲突的文件

要找出合并提交中曾存在冲突、需要手动解决的文件,可通过以下方法:

  • 方法一:从combined diff中识别
    执行git diff --cc <merge_commit_sha>^!,输出中带有|||||||分隔线的文件即为曾存在冲突的文件。这类文件的diff会同时展示父提交#1、父提交#2以及最终合并结果的内容,是冲突解决的典型特征。
  • 方法二:直接筛选冲突文件
    执行以下命令,直接列出合并时产生冲突的文件:
    git diff --name-only --diff-filter=U <merge_commit_sha>^1 <merge_commit_sha>^2
    
    --diff-filter=U会筛选出两个父提交之间处于"Unmerged"状态的文件,也就是合并过程中需要手动解决冲突的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:07:25