При работе с Git важное место занимает работа с модулями (submodules). Хочется сделать небольшую памятку для работы с submodule git.
Для добавления модуля в существующий репозиторий необходимо выполнить команду git submodule add. При этом первым параметром передается ссылка на наш модуль, вторым дирректория, в которой будет находиться модуль.

git submodule add git://github.com/kohana/core.git system

После добавления модулей необходимо произвести инициализацию URL’ов репозиториев в ‘.git/config’

git submodule init

Обновление модулей

Для обновления всех подмодулей проекта до последней HEAD версии:

git submodule foreach 'git checkout master && git pull origin master'

Для обновления одного модуля, например system:

cd system
git checkout master
git pull origin master
cd ..
git add system
git commit -m 'Updated system to latest version'

Для обновления модуля до выбранного коммита необходимо:

cd modules/database
git pull origin master
git checkout fbfdea919028b951c23c3d99d2bc1f5bbeda0c0b
cd ../..
git add database
git commit -m 'Updated database module'

При клонировании репозитория, который уже содержит подмодули необходимо выполнить:

git submodule init
git submodule update

Этот небольшой мануал является лишь малой частью возможных операций с подмодулями в git. В книгах по git так много всего написано, что вырвать вещи первостепенной важности довольно не легко.

Читать дальше >