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