Клонировать внешний репозиторий в подкаталог в качестве субмодуля
$ git submodule add git://github.com/chneukirchen/rack.git rack
Initialized empty Git repository in /opt/subtest/rack/.git/
remote: Counting objects: 3181, done.
remote: Compressing objects: 100% (1534/1534), done.
remote: Total 3181 (delta 1951), reused 2623 (delta 1603)
Receiving objects: 100% (3181/3181), 675.42 KiB | 422 KiB/s, done.
Resolving deltas: 100% (1951/1951), done.
Посмотреть конфигурационный файл .gitmodules, который содержит соответствие между URL и локальным подкаталогом, в который был загружен подмодуль
$ cat .gitmodules
[submodule "rack"]
path = rack
url = git://github.com/chneukirchen/rack.git
Инициализировать локальный файл конфигурации .gitmodules
$ git submodule init
Submodule 'rack' (git://github.com/chneukirchen/rack.git)
registered for path 'rack'
Получить все данные из подмодуля и перейти к соответствующему коммиту, указанному в вашем основном проекте
$ git submodule update
Initialized empty Git repository in /opt/myproject/rack/.git/
remote: Counting objects: 3181, done.
remote: Compressing objects: 100% (1534/1534), done.
remote: Total 3181 (delta 1951), reused 2623 (delta 1603)
Receiving objects: 100% (3181/3181), 675.42 KiB | 173 KiB/s, done.
Resolving deltas: 100% (1951/1951), done.
Submodule path 'rack': checked out '08d709f78b8c5b0fbeb7821e37fa53e69afcf433'
Источники:
- 1-4 - progit.org