如何获取分支中已更改的所有文件的列表?我不能做 git-diff 因为分支已经合并到 master 中。
我需要一种方法来列出分支中的所有提交并提取文件的路径,而不会重复。
如果有人在此之前做过这样的事情,将不胜感激,
非常感谢!
如果我们将您的分支视为从master分支的BranchA,您可以执行以下操作:
git diff --name-status `git merge-base BranchA master`..BranchA
这将为您提供以状态为前缀的分支中已更改文件的列表(M 表示已修改,A 表示已添加,D 表示已删除)。
做一个git log
并找出您想从哪个提交中了解差异。假设您确定您想要的提交的哈希是aaaaaa
. 然后运行:
git diff aaaaaa --stat
如果分支指向合并提交,则此方法有效:
git diff branch_name^..master --name-only
我遇到了同样的问题,@Michael Burtin 的解决方案大部分都有效。但是,我想将此添加到适用于任何分支的脚本中,因此它不能包含分支名称。这就是我想出的:
git diff --name-only $(git merge-base master HEAD)
它找到主分支和当前分支的壁橱祖先,然后将提交与当前分支进行比较。