比较时,Git diff似乎返回不同的更改:
git diff origin/master ... origin/branch
git diff origin/master...origin/branch
Run Code Online (Sandbox Code Playgroud)
两者有什么区别?对于那些看不到第一个命令的区别的用户,请使用...空格缓冲。
通常,“圆点”表示法是用于指定范围和完整文档,可在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既不是主题也不是母版,则将导致三向差异。
希望有帮助!