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

如何查看Git正在进行的合并过程中已做出的手动修改?

如何在未完成的Git合并中定位手动修改内容

以下几种方法可以帮你快速找到合并过程中手动调整的部分:

  • 对比工作区与Git自动合并的结果
    Git在自动合并时会生成一个临时的合并树,你可以先获取这个树的哈希,再对比它与当前工作区的差异,这部分差异就是你手动修改的内容:

    # 获取自动合并后的树哈希
    auto_merge_tree=$(git merge-tree $(git merge-base HEAD MERGE_HEAD) HEAD MERGE_HEAD | grep -E "^merged tree SHA-1:" | awk '{print $4}')
    # 对比工作区与自动合并结果
    git diff $auto_merge_tree
    
  • 利用暂存区与工作区的差异
    如果合并过程中你没有手动将变更加入暂存区,暂存区里保存的是Git自动合并后的内容,直接执行以下命令就能看到你手动修改的部分:

    git diff
    
  • 通过 blame 定位修改行
    针对单个文件,使用带-c参数的blame命令,可以看到每行内容的来源分支(1代表当前分支HEAD,2代表要合并的MERGE_HEAD),手动修改的行不会有这些标记,很容易识别:

    git blame -c <你的文件名>
    
  • 暂存当前修改,重新自动合并后对比
    如果你不确定自动合并的原始状态,可以先暂存当前修改,让Git重新执行自动合并,再对比暂存的修改与自动合并结果:

    # 暂存当前手动修改
    git stash
    # 查看暂存的修改与自动合并结果的差异
    git stash show -p
    # 恢复暂存的修改
    git stash pop
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:22:06