Почему некоторые команды git не разрешены в каталоге.git?

Кажется, существует некоторое несоответствие относительно того, какие команды разрешены, когда вы находитесь в каталоге .git, а какие нет. Например,

git symbolic-ref HEAD

или

git diff --staged

подходят.

Но

git diff

или

git status

выдает сообщение об ошибке: fatal: This operation must be run in a work tree

Еще более удивительно:создайте псевдоним одной из приведенных выше ошибочных команд, например git stдля git statusи , затем работает !

Есть ли всему этому логическое объяснение? И почему псевдоним сбойной команды вдруг сработает только потому, что это псевдоним??

7
задан Olivier Verdier 2 April 2012 в 09:25
поделиться