8

如何获取分支中已更改的所有文件的列表?我不能做 git-diff 因为分支已经合并到 master 中。

我需要一种方法来列出分支中的所有提交并提取文件的路径,而不会重复。

如果有人在此之前做过这样的事情,将不胜感激,

非常感谢!

4

4 回答 4

3

如果我们将您的分支视为从master分支的BranchA,您可以执行以下操作:

git diff --name-status `git merge-base BranchA master`..BranchA

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

于 2012-10-24T13:01:02.127 回答
2

做一个git log并找出您想从哪个提交中了解差异。假设您确定您想要的提交的哈希是aaaaaa. 然后运行:

git diff aaaaaa --stat
于 2012-10-24T18:24:23.623 回答
2

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

git diff branch_name^..master --name-only
于 2012-10-24T08:59:11.783 回答
2

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

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

它找到主分支和当前分支的壁橱祖先,然后将提交与当前分支进行比较。

于 2017-01-04T06:27:02.227 回答