git diff origin / master ... origin / branch和git diff origin / master ... origin / branch有什么区别?

use*_*199 3 git

比较时,Git diff似乎返回不同的更改:

git diff origin/master ... origin/branch
git diff origin/master...origin/branch
Run Code Online (Sandbox Code Playgroud)

两者有什么区别?对于那些看不到第一个命令的区别的用户,请使用...空格缓冲。

Eug*_*ine 5

通常,“圆点”表示法是用于指定范围和完整文档,可在git log --help“指定修订”部分中找到,并且主要用于类似git log

简而言之,您有两个从commit a开始的分支:

a - b - c (master)
\d - e (topic)
Run Code Online (Sandbox Code Playgroud)

git log master..topic 将显示您可以从主题访问但不能从主站点访问的提交,实际上是“ d”和“ e”

git log topic..master 将显示您可以从母版访问但不能从主题访问的提交,实际上是“ b”和“ c”

现在 git log master...topic(注意三个点)将向您显示可以从母版或主题(但不能同时从两者)访问的所有提交,有效地是b,c,d和e

差异虽然适用于两个历史点,而不是范围,所以例如表示法

git diff topic master
Run Code Online (Sandbox Code Playgroud)

要么

git diff topic..master

应该返回相同的结果,即指定的分支的尖端之间的差异。三点符号

git diff topic...master

应该显示自主题分支分支以来在master中发生的更改

正如Jan指出的那样,如果HEAD指向与分支的其中一个分支相同的提交,则git将三个点用空格包围的表示法理解为git的分支尖端之间的差异(如无点或两个点)。利益。如果HEAD既不是主题也不是母版,则将导致三向差异。

希望有帮助!