Чтобы повторно использовать код из другого репозитория, можно задать Git™ подмодули, которые будут включены в ваш проект.
Чтобы клонировать внешний репозиторий Git как подмодуль:
На вкладке Project, в Разделе системы контроля версий, нажмите Submodules.
В диалоговом окне Submodules нажмите кнопку +.
В диалоговом окне «Добавить подмодуль», в Remote окне, укажите местоположение репозитория. Вы можете нажать кнопку Validate.
В Path окне укажите местоположение подмодуля в проекте и нажатии кнопки OK. В диалоговом окне «Подмодули» отображаются состояние и сведения о подмодуле.
Проверьте сообщение о состоянии и нажмите кнопку Close, чтобы вернуться к своему проекту.
После использования Pull в проекте верхнего уровня проверьте актуальность подмодулей, щелкнув Подмодули (Submodules) и затем нажмите Update. Если какое-либо определение подмодуля изменилось, обновление гарантирует, что папка подмодуля содержит правильные файлы. Обновление применяется ко всем дочерним подмодулям в иерархии подмодулей.
Когда необходимо управлять подмодулем, откройте диалоговое окно Подмодули (Submodules).
Чтобы получить последнюю версию подмодуля, в диалоговом окне «Подмодули» нажмите кнопку Fetch.
После извлечения необходимо объединиться. Проверьте Status сообщение в диалоговом окне Submodules для получения информации о текущей ветви относительно удаленной ветви отслеживания в репозитории. Когда вы увидите сообщение Behind
необходимо объединить изменения из репозитория в локальную ветвь.
Щелкните Branches и объедините изменения источников в локальной ветви с помощью диалогового окна «Ветви». См. «Извлечение», «Выборка» и «Слияние».
Если вы вносите изменения в подмодуль и хотите отправить изменения обратно в репозиторий:
Выполните локальную фиксацию в родительском проекте.
Откройте диалоговое окно Submodules и нажмите Push.
Если вы хотите, чтобы другие пользователи проекта получали изменения в подмодуле, когда они клонируют родительский проект, убедитесь, что индекс и голова совпадают.
В диалоговом окне Submodules проверьте значения индексов и головок. Индекс указывает на фиксацию заголовка во время первого клонирования подмодуля или когда последний раз был зафиксирован родительский репозиторий проекта. Если индекс и заголовок не совпадают, необходимо обновить индекс.
Чтобы обновить индекс, фиксируйте изменения в родительском проекте и нажмите кнопку Push в диалоговом окне Submodules. Это действие делает индекс и возглавляет его.