Я предпочитаю символические ссылки для субмодулей.
1) Имеют foo
, bar
и общий код (common
) в 3 отдельных репозиториях.
2) В каталоге для foo
добавьте символическую ссылку на common
, где это необходимо.
$ cd foo
$ ln -s /path/to/common lib/common
3) Проверьте по ссылке.
$ git add lib/common
$ git commit
4) Повторите для bar
Это использует тот факт, что git уважает символические ссылки и сохраняет местоположение цели (в отличие от перехода по ссылке).
Конечно, вы ожидаете, что вы последовательно будете использовать один и тот же целевой путь для common
. Я работаю в обход этого, не проверяя символическую ссылку и добавляя файл README.setup в каждый из моих проектов, напоминая мне о необходимости добавления необходимых символических ссылок при инициализации. Наличие devsetup.sh
, которое выполняет такую инициализацию, также полезно здесь.
ИМО, с этим гораздо приятнее, чем с подмодулями.