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

时间:2015-02-02 19:06:05

标签: git git-branch git-diff git-diff-tree

我是否可以使用Git命令列出一个分支中存在的另一个分支中不存在的所有文件的名称?

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

1 个答案:

答案 0 :(得分:16)

您可以使用git diff-tree来实现您的目标

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

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