Подмодуль - это Git-репозиторий.
Если вы хотите изменить, какой коммит извлекается из Git-репозитория, вы входите в Git-репозиторий и запускаете там git checkout
.Таким образом, вы можете:
(cd ci && git checkout origin/master)
например, изменить коммит, извлеченный из репозитория Git в каталоге ci
.Вы можете повторить это для подкаталога metadata
, содержащего репозиторий metadata
Git.
Обратите внимание, что это не меняет идентификаторы хеша фиксации, записанные в суперпроекте (текущийGit репозиторий).Список суперпроектов, чей ID хеша должен использовать суперпроект Git при запуске Git суперпроекта:
(cd <submodule> && git checkout <hash-id>)
Если вы изменили хеш-идентификаторы, вы хотели бы проверить суперпроект - введя подмодульный репозиторий Git.и, например, проверяя другие коммиты - вы должны запустить git add
в суперпроекте, чтобы записать новые хэш-идентификаторы в индекс для репозитория суперпроекта:
git add ci metadata
и затем запуститьgit commit
в репозитории суперпроекта, чтобы сделать новый коммит, в котором записаны эти новые хэш-идентификаторы.
Команда git submodule
может сделать кое-что за вас:
git submodule update
сообщает вашемуСуперпроект Git для запуска:
(cd <submodule> && git checkout <hash-id>)
для каждого подмодуля в соответствии с хэш-идентификатором, который в данный момент хранится в индексе в суперпроекте.С другой стороны:
git submodule update --remote
заставляет ваш суперпроект Git запускать:
(cd <submodule> && git fetch && git checkout origin/master)
в каждом подмодуле.Название origin/master
на самом деле зависит от настроек конфигурации;это просто по умолчанию.У git submodule update
есть много дополнительных флагов, чтобы заставить его делать другие вещи.
(Я предпочитаю просто войти в подмодуль и делать все сам, чтобы я мог видеть, что я делаю.)