仅比较 Git 中合并分支中的本地更改

Diff only local changes in a merged branch in Git

使用 Git,我从 "trunk" 分支到分支 "A",然后提交了一些更改。然后,我从 "trunk" 合并,因为它与分支 "B" 合并,我必须与这些更改同步。然后我在分支 "A".

上做了额外的更改

这是树的示意图:

branch A:   T1--A1--A2--M--A3--*
           /           / 
   trunk: T1----------T2
           \         /
branch B:   T1--B1--B2

现在,我只想比较分支 "A" 中的局部差异,但是如果我在最初分支的提交和当前工作树之间进行比较,我还会看到从分支合并的更改 "B".

那么,在合并的分支中,我如何才能只看到在该分支中所做的更改而不包括合并?

您可以使用 --author 标志来过滤您的更改:

$ git log branchpoint..HEAD --author=lorenzo

编辑:

要查看这些更改的内容,您可以使用 git show:

$ git show branchpoint..HEAD --author=lorenzo

您可以尝试按照 this 的解释从差异中排除 merge B 提交。

解决方案实际上很简单:仅 git diff 工作树针对已合并分支的提交。在我的示例中,这意味着 git diff T2.