【问题标题】:Git: Determining merge changes when no conflictsGit:在没有冲突时确定合并更改
【发布时间】:2015-11-14 05:01:35
【问题描述】:

当我们进行典型的合并(即:从分支 A 到 B)存在冲突时,我可以通过运行来查看差异:

git status
git difftool --dir-diff --cached 

但是如果没有冲突,那么这些命令不会返回任何结果。我们运行 git push 将更改推送到远程仓库(本例中的分支 B)。

在这种情况下,您可以运行什么命令来查看您刚刚拉下(和推送)的差异?

【问题讨论】:

    标签: git git-merge


    【解决方案1】:

    也许git diff 命令会显示你想要的。

    【讨论】:

    • git diffgit difftool 做同样的事情(我正在尝试)。不返回任何结果。
    • 呵呵,这种情况下可以使用git log命令,找到合并提交的hash码,然后使用git diff <hash code>Example
    • 有效:git log -n 1 显示合并提交,git diff xxx~1 列出差异。
    【解决方案2】:

    Git diff 通过告诉您合并没有引入新更改来“帮助”您。合并的所有更改都由其父项的更改说明。您可以通过专门将合并与一个或另一个父级进行比较来查看进入合并的各个更改,例如,

    git diff <merge-commit> <merge-commit>^1 # diff against 1st parent
    git diff <merge-commit> <merge-commit>^2 # diff against 2nd parent
    

    如果你有章鱼合并,依此类推。这些将向您显示每个父级带入合并的各个更改。

    如果有问题的合并提交是您当前的负责人,那么您可以

    git diff HEAD^1
    git diff HEAD^2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-16
      • 2012-01-30
      • 2013-10-22
      • 2021-04-10
      • 1970-01-01
      • 2022-12-18
      • 2017-07-24
      • 1970-01-01
      相关资源
      最近更新 更多