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

如何获取从master分支点创建分支以来所有修改的文件列表

解答

这个需求完全可以实现,属于Git原生支持的常规操作,不需要额外记切分支时的master提交哈希——Git本身会自动记录分支间的分叉点。

可用命令

如果你当前就在要查询的目标分支上

直接执行下面的命令,就能拿到从分支创建到现在所有修改过的文件列表:

git diff --name-only $(git merge-base HEAD master) HEAD

如果需要同时显示每个文件是新增、修改还是删除,把--name-only换成--name-status就行:

git diff --name-status $(git merge-base HEAD master) HEAD

还有个更短的三点写法,效果完全一样,注意必须是三个点,写错成两个点结果就不对了:

git diff --name-only master...HEAD

如果你现在在别的分支,想查指定分支的变更文件

把命令里的HEAD换成你要查的分支名就行,比如查feature/pay分支的修改:

git diff --name-only $(git merge-base feature/pay master) feature/pay

注意事项

  • git merge-base HEAD master的作用就是算出当前分支和master的最近共同祖先,也就是你当初从master切出当前分支时,master所在的那个提交节点,刚好是你要的对比基准,完全不会拿master的最新HEAD来对比
  • 千万别写成两个点的git diff master..HEAD,这个写法是直接拿当前分支和master最新提交比,结果不符合要求
  • 要是你仓库的默认主分支叫main不叫master,把命令里的master换成main就可以
  • 怕基准找错的话,可以先单独跑git merge-base HEAD master拿到提交哈希,再用git show <哈希值>看提交内容,确认是你切分支时的master节点再查文件列表就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:12:14