¿Por qué `git diff` autocomplete a una twig y no a un file

Publicando esto aquí en SO y no en webapps StackExchange porque que pertenece a git , pero no estoy seguro si también involucra a GitHub .

Digamos que tengo un repo foo en mi máquina en /home/user/foo , que es mi directory de trabajo actual, y tengo un file en el repository: /home/user/foo/main.sh .

Estoy trabajando en la twig master (aunque no estoy seguro de que importe en qué twig estoy) y realizo algunos cambios en main.sh Quiero ver los cambios que realicé solo en este file, así que ingresé:

 $ git diff ma<tab> 

¿Por qué se autocompleta para master lugar de main.sh ? En realidad, de manera más razonable, no creo que deba completarse automáticamente porque solo con las 2 letras ma , es ambiguo. Miré la descripción en la página man de git diff , pero no veo nada sobre uno que tenga prioridad sobre el otro.

La página man para git-diff contiene esto:

git diff [–options] [-] [ruta …]

Entonces, si buscas git diff para un file / ruta, se supone que debe seguir -- (guiones dobles). Encontrarás que si haces git diff -- ma<tab> , se completará automáticamente con un nombre de file, en lugar de una bifurcación.

 git diff $branch git diff -- $filePath