在 Git 中,如何列出分支 A 中存在但分支 B 中不存在的所有文件

In Git, how can I list all files that exist in branch A that do not exist in branch B

有没有我可以使用的 Git 命令,它会列出存在于一个分支中但不存在于另一个分支中的所有文件的名称?

背景:有人删除了一些历史,然后推送了origin/master。一些团队成员一直在说他们丢失了一些文件。我想我已经用 diff 命令创建的补丁恢复了丢失的文件。我在删除历史记录之后分支 master 并将我的补丁应用到新分支。现在我想简单地查看新分支中存在哪些文件,而主分支的 HEAD 中不存在这些文件。现在我只想要文件名,而不考虑内容,并且仅适用于新分支中存在且不存在于 master 的 HEAD 中的文件。

你可以使用git diff-tree来实现你想要的

使用-r通过子树递归下降并--diff-filter将输出限制为仅某些类型的差异(例如,删除=D)

git diff-tree -r --diff-filter=D branchA branchB