#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
команда.