首先:关于StackOverflow已经有两个问题,关于这个主题的确有答案,但是我仍然感到困惑。我有点理解“什么”,但不理解“为什么”。
我的问题是:为什么显示git log A..B
(双点)从B到A的提交列表,但是为了获得同一组提交的差异,必须写下git diff A...B
(三点)。
如果git log
和git diff
用相同的方式对待提交范围,是否会更加一致?现在它们似乎表现出彼此正交。
也许我对为什么这样设计缺少一些见识?
答案 0 :(得分:3)
git diff
总是对仅两次提交(引用)进行操作,永远不会减少,并且会显示它们之间的差异。它没有执行任何带有“范围”的操作,只有两次提交。
git log
显示提交范围,并且您可以通过多种不同方式指定任意数量的范围。所以在那儿,您会看到git diff和git log的行为将有所不同。
我认为您甚至无法将两个提交与一系列提交进行比较。我认为,更重要的是,“ ..
语法是'from .. to'的简写,并且该简写在不同的上下文中将具有不同的含义。但是后来我们意识到,从最后一个共同祖先那里经常需要' {。git diff
中的“ ..”成惯用语,因此我们使用了相似的...
语法。”