为什么git中的双点和三点在diff和log上表现不同

时间:2018-11-02 14:05:19

标签: git

首先:关于StackOverflow已经有两个问题,关于这个主题的确有答案,但是我仍然感到困惑。我有点理解“什么”,但不理解“为什么”。

我的问题是:为什么显示git log A..B (双点)从B到A的提交列表,但是为了获得同一组提交的差异,必须写下git diff A...B (三点)

如果git loggit diff用相同的方式对待提交范围,是否会更加一致?现在它们似乎表现出彼此正交。

也许我对为什么这样设计缺少一些见识?

Git log vs diff

1 个答案:

答案 0 :(得分:3)

git diff总是对仅两次提交(引用)进行操作,永远不会减少,并且会显示它们之间的差异。它没有执行任何带有“范围”的操作,只有两次提交。

另一方面,

git log显示提交范围,并且您可以通过多种不同方式指定任意数量的范围。所以在那儿,您会看到git diff和git log的行为将有所不同。

我认为您甚至无法将两个提交与一系列提交进行比较。我认为,更重要的是,“ ..语法是'from .. to'的简写,并且该简写在不同的上下文中将具有不同的含义。但是后来我们意识到,从最后一个共同祖先那里经常需要' {。git diff中的“ ..”成惯用语,因此我们使用了相似的...语法。”