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

Git:如何比较不同分支提交并检测双方共同修改的文件?

直接检测分支间共同修改文件的Git命令方案

步骤1:获取两个提交的共同祖先节点

先拿到commit-A和commit-B的共同源节点(merge base),把它存为变量方便后续复用:

BASE=$(git merge-base commit-A commit-B)

步骤2:直接输出两个分支共同修改的文件

用组合命令一次性提取两个提交相对于共同祖先都修改过的文件:

comm -12 <(git diff --name-only $BASE commit-A | sort) <(git diff --name-only $BASE commit-B | sort)

命令解释:

  • git diff --name-only $BASE <commit>:仅列出指定提交与共同祖先相比修改过的文件路径
  • <(...):将命令输出临时当作文件输入(shell进程替换特性,需bash/zsh支持)
  • comm -12:对比两个排序后的文件列表,只保留双方共有的行——也就是两个分支都修改过的文件

额外:查看共同修改文件的具体差异

如果需要直接查看这些共同文件在两个分支中的具体改动,可以把上面的结果作为参数传给git diff:

git diff commit-A commit-B -- $(comm -12 <(git diff --name-only $BASE commit-A | sort) <(git diff --name-only $BASE commit-B | sort))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:54:53