Git检索分支中所有修改的文件列表

8

我该如何获取分支中所有更改的文件列表?由于分支已经合并到主分支中,因此无法进行git-diff操作。

我需要一种列出分支中所有提交记录并提取文件路径的方法,同时不包含重复文件。

如果有人曾经做过类似的事情,将不胜感激。

非常感谢!

4个回答

3
如果我们将您的分支称为 BranchA,并从 master 分支进行了分支,则可以执行以下操作:
git diff --name-status `git merge-base BranchA master`..BranchA

这将为您提供带有状态前缀的分支中更改文件的列表(M表示修改,A表示添加,D表示删除)。


2

我遇到了同样的问题,@Michael Burtin的解决方案在大部分情况下都有效。但是,我想将其添加到适用于任何分支的脚本中,因此它不能包含分支名称。这就是我想出的:

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

它会找到主分支和当前分支的最近共同祖先,然后将该提交与当前分支进行差异比较。


2

如果分支指向合并提交,则此方法有效:

git diff branch_name^..master --name-only

2

执行git log,找出您想知道差异的提交是哪个。假设您确定您想要的提交的哈希值为aaaaaa。然后运行:

git diff aaaaaa --stat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接