title: What are the differences between double-dot ".." and triple-dot "..." in Git diff commit ranges?
body: <p>What are the differences between the following commands?:</p>
  
  <pre class="lang-bash prettyprint-override"><code>git diff foo master   # a 
  git diff foo..master  # b
  git diff foo...master # c
  </code></pre>
  
  <p><a href="http://jk.gs/git-diff.html#_examples" rel="noreferrer">The diff manual</a> talks about it:</p>
  
  <blockquote>
    <p>Comparing branches</p>
  
  <pre><code>$ git diff topic master    &lt;1&gt;
  $ git diff topic..master   &lt;2&gt;
  $ git diff topic...master  &lt;3&gt;
  </code></pre>
    
    <ol>
    <li>Changes between the tips of the topic and the master branches.</li>
    <li>Same as above.</li>
    <li>Changes that occurred on the master branch since when the topic branch was started off it.</li>
    </ol>
  </blockquote>
  
  <p>but isn't totally clear to me.</p>