【发布时间】:2014-06-05 13:50:21
【问题描述】:
假设我有这样的本地历史
----A master
\
C------D feature
我在哪里运行以下命令来创建提交 B:
git checkout master
git merge feature --no-ff -m "Added new feature"
----A----------B master
\ /
C------D feature
在 gitk 中,我的 HEAD 在 master(提交 B)中,“补丁”将显示一个空白差异。
但我希望补丁能够显示 B 和 A 之间的差异。类似于以下命令显示的内容:
git checkout master //now at B
git diff HEAD^
要让 gitk 以这种方式工作,我有哪些选择?
【问题讨论】:
-
如果你手动提交它:
git diff sha-id-of-A -
sha id 类似于
aa9205c100d9ba040f0b3bd44706c612d29a5fd4或短 id:aa9205c -
@nishantjr,我不确定你的意思。我已经知道如何在命令行上查看差异(如上所示),但在上述情况下,gitk 为其 Patch 显示的并不是相同的差异。
-
我不确定你的意思。 gitk 向我展示了合并提交的差异。不是父母任何一方。 (对我来说是空的)
-
我同意你的看法。我的也是空的。这就是我觉得不寻常的地方。如果我在一个分支上,我期望(可能不正确)补丁应该显示该分支当前位置与其祖先 (HEAD^) 之间的差异。我在问我如何(通过命令行选项或查看选项)如何让 gitk 向我展示这样的补丁。如果它不能以这种方式工作,那么 gitk 对于更多的工作流程基本上是无用的,因为这是一个常见的工作流程。