当比较时,Git diff 返回不同的更改:
git diff origin/master ... origin/branch
git diff origin/master...origin/branch
什么是这两者之间的区别?对于那些无法看出第一个命令中的差异的人来说,
...
命令周围有空格缓冲。当比较时,Git diff 返回不同的更改:
git diff origin/master ... origin/branch
git diff origin/master...origin/branch
...
命令周围有空格缓冲。a - b - c (master)
\d - e (topic)
git log master..topic
会显示从topic可达却不可达master的提交,实际上是"d"和"e"
git log topic..master
会显示从master可达但不可达topic的提交,实际上是"b"和"c"
现在git log master...topic
(请注意三个点)会显示从master或topic可达但不从两者都可达的所有提交,实际上是b、c、d和e
但差异是使用两个历史点而不是范围,例如符号表示
git diff topic master
git diff topic..master
git diff topic...master
...
既不是修订版也不是路径,但参数解析器将其视为HEAD 的同义词。这可能是...branch
意味着HEAD...branch
和branch...
意味着branch...HEAD
的副作用。再加上git diff 可以接受任意数量的参数,并在给定超过2个不同参数时产生n路差异。我已经检查过了,确实当A
和B
都没有指向与HEAD
相同的修订版本时,git diff A ... B
会产生一个3路差异。
A
和B
都不等于HEAD
时,git diff A ... B
会给出三方差异。 - Jan Hudec