【问题标题】:Diff only local changes in a merged branch in Git仅区分 Git 合并分支中的本地更改
【发布时间】:2016-01-05 18:16:30
【问题描述】:

使用 Git,我从“主干”分支“A”分支,然后提交了几个更改。然后,我从“主干”合并,因为它与分支“B”合并,我必须与这些更改同步。然后我对分支“A”进行了额外的更改。

这是树的示意图:

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

现在,我只想区分分支“A”中的本地差异,但如果我区分我最初分支的提交和当前工作树,我还会看到从分支“B”合并的更改。

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

【问题讨论】:

    标签: git merge branch git-diff


    【解决方案1】:

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

    【讨论】:

    • 哎呀,这可能行得通,但我希望找到更简单的东西,比如传递给git diff的一些神奇参数,而不需要创建临时分支...
    【解决方案2】:

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

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

    编辑:

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

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

    【讨论】:

    • @Lorenzo 我当时误解了要求,抱歉。 git show 应该可以解决问题。
    • 这好多了...但仍然不是我想要的,因为我没有看到一个差异,而是一系列差异,我所做的每个提交都有一个差异。然后,如果我也是我合并的分支上的更改的作者,这将不起作用。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2017-05-28
      • 2022-08-18
      • 2017-12-15
      • 2014-09-23
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多