【问题标题】:Can I change which patch gitk is showing?我可以更改 gitk 显示的补丁吗?
【发布时间】: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 对于更多的工作流程基本上是无用的,因为这是一个常见的工作流程。

标签: git gitk


【解决方案1】:

这里有点猜测:

Gitk 显示提交的内容和不在任何父提交中的内容之间的差异。

通常,提交会更改其父级的某些内容,但在合并的情况下,实际的合并提交不会进行任何更改。

如果合并解决了冲突(不在任一父项中的更改),它们将显示在 gitk 中

This post seems to have an answer - 猜测较少。

查看合并的父级和合并提交之间的完整差异的最简单方法是选择父级(正常单击),然后从合并提交的上下文菜单(右键/备用单击菜单)中选择“选择的差异-> 这个”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多