Почему мы используем двойную тире в "git checkout -."?

Я думал, что линия

git checkout .

может вернуть все изменения в текущем каталоге и подкаталоге для локальной рабочей копии. Но я также вижу эту популярную форму:

git checkout -- .

поэтому если -- (двойная тире или также называемая "голая двойная тире" ) означает сигнализацию конца параметров команды, то почему это необходимо в вышеупомянутый случай? . никогда не может быть вариантом, поэтому не должно быть путаницы.

Ответ 1

Это должно было устранить двусмысленность.

Например, если у вас есть ветвь с именем bob (которая будет проверять эту ветку) и папку с именем bob (которая вернет эту папку).