Two and three dots with diff¶
Note
Remember it’s different for git log
- see Two and three dots with log and
Pain in the dots
Diff without dots¶
Two dots is the default in git diff
. That is, if you do:
git diff master topic
what you’ll get is the same as if you asked for:
git diff master..topic
So git diff
without dots is the same as Diff with two dots.
Diff with two dots¶
Imagine a series of commits A, B, C, D… Imagine that there are two branches, topic and master. You branched topic off master when master was at commit ‘E’. The graph of the commits looks like this:
A---B---C topic
/
D---E---F---G master
Then:
git diff master..topic
will output the difference from G to C (i.e. with effects of F and G).
Diff with three dots¶
Using the three-dot form:
git diff master...topic
This shows the differences between master
and topic
starting at the
last common commit.
In this case therefore it would output just differences in the topic
branch
(i.e. only A, B, and C). 1
Footnotes
- 1
Thanks to Yarik Halchenko for this explanation.