【发布时间】:2015-11-14 05:01:35
【问题描述】:
当我们进行典型的合并(即:从分支 A 到 B)存在冲突时,我可以通过运行来查看差异:
git status
git difftool --dir-diff --cached
但是如果没有冲突,那么这些命令不会返回任何结果。我们运行 git push 将更改推送到远程仓库(本例中的分支 B)。
在这种情况下,您可以运行什么命令来查看您刚刚拉下(和推送)的差异?
【问题讨论】:
当我们进行典型的合并(即:从分支 A 到 B)存在冲突时,我可以通过运行来查看差异:
git status
git difftool --dir-diff --cached
但是如果没有冲突,那么这些命令不会返回任何结果。我们运行 git push 将更改推送到远程仓库(本例中的分支 B)。
在这种情况下,您可以运行什么命令来查看您刚刚拉下(和推送)的差异?
【问题讨论】:
也许git diff 命令会显示你想要的。
【讨论】:
git diff 与git difftool 做同样的事情(我正在尝试)。不返回任何结果。
git log命令,找到合并提交的hash码,然后使用git diff <hash code>Example
git log -n 1 显示合并提交,git diff xxx~1 列出差异。
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
【讨论】: