Используя подмодуль, вы определяете в своем рабочем пространстве Git (имеется в виду репозиторий Git «супер-проект») конфигурацию .
Под «конфигурацией» я подразумеваю «список тегов или узла SHA-1, необходимых для работы в вашем рабочем пространстве».
(под работой я подразумеваю все «усилия по разработке», которые вы делаете в своем рабочем пространстве: классическая компиляция, или исправление, или слияние, или развертывание, или ...).
Это тот случай, когда вы клонируете суперпроект и «git update
» свои подмодули: вы извлекаете точные репозитории SHA1, которые были ранее зафиксированы в суперпроекте (записано как gitlink в указатель ).
Другой режим - когда вы работаете над своим суперпроектом и над одним или несколькими подмодулями.
Это означает, что для заданных подмодулей вы извлекли конкретную ветвь (вы больше не используете отдельную HEAD для содержимого этих подмодулей, а скорее указатель на верхушку ветки).
Затем «отправка подмодуля» означает обновление удаленного хранилища, содержащего этот подмодуль (и только этот).
Фактический трюк в этом последнем сценарии (который может заслуживать зацепки, если вы этого хотите) - это когда вы толкаете супер-проект: вам нужно быть уверенным, что сначала были запущены все ваши подмодули.
Из учебника по подмодулям :
Всегда публикуйте изменение подмодуля перед публикацией изменения в суперпроекте, который ссылается на него. Если вы забудете опубликовать изменение субмодуля, другие не смогут клонировать репозиторий (супер-проекта)
Не забывайте, что может настроить подмодуль для следования ветке .