【问题标题】:In Git, how can I list all files that exist in branch A that do not exist in branch B在 Git 中,如何列出分支 A 中存在但分支 B 中不存在的所有文件
【发布时间】:2015-02-02 19:06:05
【问题描述】:

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

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

【问题讨论】:

  • 尝试git diff-tree,然后指定--diff-filter=Dgit help diff-tree了解详情
  • @AndrewC 还添加一个 -r 标志以通过子目录进行递归。 git diff-tree -r --diff-filter=D branchA branchB
  • 是的!以下似乎完全符合我的要求。 git diff-tree -r --diff-filter=D HEAD..master jacobhyphenated,如果您将其作为答案提交,我将接受答案。非常感谢。

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


【解决方案1】:

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

使用-r 以递归方式遍历子树并使用--diff-filter 将输出限制为仅某些类型的差异(例如,删除=D)

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

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2022-01-09
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多