состояние подмодуля git против состояния подмодуля git

#git

Вопрос:

В чем разница между git submodule status и git status submodule ?

git submodule status часто встречается в нескольких ответах. В настоящее время это не дает мне никаких результатов.
git status submodule говорит мне:

 On branch main
Your branch is behind 'origin/main' by 8 commits, and can be fast-forwarded.
 

Последняя команда была скорее опечаткой. Теперь я удивлен, что это вообще дает результат.
У меня есть подмодули, но нет папки с именем submodule .

Комментарии:

1. Я полагаю, что git просто запрашивает внутренний реестр, если что-либо связано с ./submodule изменением пути. И поскольку ничего, содержащего ./submodule путь, не найдено, вывод будет таким. Он даже не проверяет, существует ли путь, он проверяет, записано ли что-либо связанное

Ответ №1:

  • git submodule status запускает git submodule команду и просит ее проверить состояние подмодуля. При этом будет рассмотрен каждый подмодуль, и для каждого из них, который у вас есть или которого у вас нет, сообщите о его статусе. Например, запустив в клоне репозитория Git для Git, я получаю:
     $ git submodule status
    -855827c583bc30645ba427885caa40c5b81764d2 sha1collisiondetection
     

    потому что я никогда не говорил Git клонировать или проверять sha1collisiondetection подмодуль.

  • git status submodule запускает git status команду, запрашивая у нее отчет о состоянии любого названного файла submodule . Сначала он выдаст общий статус, который он обычно выдает. После этого, если у вас есть файл с именем submodule , он скажет то, что сказал бы об этом файле, если бы вы запустили git status его, не ограничивая его вывод. Если бы у вас не было файла с именем submodule , он бы вообще ничего не сказал, и он продолжает ничего не говорить.



Другими словами, один из них на самом деле выглядит специально для подмодулей ( git submodule ). Другой — это просто git status команда.