¿Cuáles son las diferencias entre el doble punto "..." y el triple punto "..." en los rangos de compromiso de Git diff?

¿Cuáles son las diferencias entre los siguientes comandos?:

git diff foo master   # a 
git diff foo..master  # b
git diff foo...master # c

El manual de diferencias habla de ello:

Comparando sucursales

$ git diff topic master    <1>
$ git diff topic..master   <2>
$ git diff topic...master  <3>
Cambios entre los consejos del tema y las ramas maestras.Lo mismo que arriba Cambios que ocurrieron en la rama maestra desde que se inició la rama del tema.

pero no es totalmente claro para mí.

Respuestas a la pregunta(4)

Su respuesta a la pregunta