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

时间:2012-10-24 08:55:00

标签: linux git branch

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

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

如果有人做过这样的事情,我们会非常感激,

非常感谢!

4 个答案:

答案 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。。