Git-如何找到第一次提交并获得特定分支的更改文件

Git-如何找到第一次提交并获得特定分支的更改文件,git,Git,在以下示例树中: A-B-C-D-E (master branch) \ F-G-H (xxx branch) 我在找B。我需要从xxx分行获得所有更改的文件: git diff B H 为了得到B,我试着: git cherry master xxx | tail -1 但是我得到了commit F,如果我在F和H之间进行了区分,我就不会更改F中的文件 谢谢你的帮助 David不清楚你在问什么-你在问如何找到B吗?如果是的话,试试看 git merge-base mas

在以下示例树中:

A-B-C-D-E (master branch)
    \
     F-G-H (xxx branch)
我在找B。我需要从xxx分行获得所有更改的文件:

git diff B H
为了得到B,我试着:

git cherry master xxx | tail -1
但是我得到了commit F,如果我在F和H之间进行了区分,我就不会更改F中的文件

谢谢你的帮助


David不清楚你在问什么-你在问如何找到B吗?如果是的话,试试看

git merge-base master xxx

这将为您提供master和xxx之间最新的共同祖先

,如果我在F和H之间进行了区分,则我没有更改F中的文件
。。。这意味着什么?我认为,正如jbu所回答的,您正在寻找
git merge base
。请注意,
git-diff
有一个内置语法,可以将两个特定提交的合并基与这两个特定提交中的一个进行区分:
git-diff-master…xxx
(注意三个,而不是两个,点)。您可能是指C而不是B,不是吗?C不是任何类型的“fork-commit”,只是在分支之前发生的常规提交,分支包含它的可能副本