Подмодули - это самый простой способ сделать это.
Существует два распространенных способа работы с подмодулями - добавление новых и инициализация существующих.
Добавление новых подмодулей
Из корня локального репозитория запустите:
git submodule add <repository> external/engage.iphone
.
Команда add
предназначена для первоначального добавления подмодуля в репозиторий., в отличие от того, когда вы клонировали репозиторий с существующими субмодулями).Он добавляет другой репозиторий, который может находиться по локальному или удаленному пути (помните, что другим разработчикам нужен доступ к нему, если вы публикуете свой репозиторий!) В файл .gitmodules в корне вашего репозитория, а затем клонирует репозиторий в указанное вами место;external/engage.iphone
в приведенном выше примере.На этом этапе у вас есть файлы под-репозитория в вашей системе, и он указан как подмодуль в файле .gitmodules, в конфигурации вашего локального репозитория.
Однако вы не можете добавлять подмодули самостоятельно..
Инициализация существующих подмодулей
Ситуация немного меняется, если вы клонируете репозиторий, в который уже добавлены подмодули.В этой ситуации в файле .gitmodules будут перечислены подмодули с указанием мест их получения, но ваша конфигурация локального репозитория ничего о них не знает, а сами файлы еще не существуют в вашей системе.Сначала вам нужно инициализировать подмодули:
git submodule init
Это будет работать через любые репозитории, перечисленные в ваших .gitmodules и добавить их в ваш .git / config.Git теперь знает о репозитории, но на самом деле он еще не клонировал его, поэтому запустите:
git submodule update
Вы можете запустить эту команду в любое время, чтобы обновить зарегистрированные подмодули, то есть клонировать отсутствующие..
git submodule sync <submodule>
Запустите это, чтобы обновить все подмодули до их удаленного HEAD, если вы не указали конкретную фиксацию, когда вы добавили подмодуль!Указание определенного подмодуля будет синхронизировать только этот.
В режиме реального git команду init
можно объединить с update
для экономии времени:
git submodule update --init
.
Конечно, вы всегда можете вручную обновить свои .gitmodules и .git / config, как только вы изучите используемый ими макет (аналогично ветвям и удаленным разделам в конфигурации).
Все детали могутможно найти на странице руководства ( версия kernel.org ).