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

如何获取Git中两个分支共同修改的文件列表?

获取Git两个分支共同修改的文件列表

要找出分支A和B共同修改过的文件,你需要先分别获取两个分支相对于它们的共同分叉起点(这里是master分支)各自修改的文件,再取两者的交集,具体可以用以下方法:

方法一:基于已知分叉起点(master)对比

直接对比两个分支与master的差异文件,再通过comm命令取交集:

comm -12 <(git diff --name-only master A | sort) <(git diff --name-only master B | sort)

这个命令会输出同时在A和B分支中相对于master修改过的文件,也就是你预期的foo1.txt。

方法二:自动识别共同祖先(通用场景)

如果不确定两个分支的分叉点,可以先用git merge-base找到A和B的共同祖先提交,再基于这个祖先进行对比:

comm -12 <(git diff --name-only $(git merge-base A B) A | sort) <(git diff --name-only $(git merge-base A B) B | sort)

这种方法适用于分支从任意节点分叉的通用场景。

命令说明

  • git diff --name-only [起点分支/提交] [目标分支]:仅输出目标分支相对于起点修改过的文件名
  • sort:对文件名排序,确保comm命令能正确匹配交集内容
  • comm -12:只保留两个文件中都存在的行,即两个分支修改文件的交集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:55:25