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