Просто для повноти:
Я б порекомендував ще одне рішення: злиття піддірядок .
На відміну від субмодулів, простіше утримувати. Ви створили б кожен сховище звичайним чином. Перебуваючи у вашому головному сховищі, ви хочете об'єднати головний (або будь-яку іншу гілку) іншого сховища у каталог вашого головного каталогу.
$ git remote add -f OtherRepository /path/to/that/repo
$ git merge -s ours --no-commit OtherRepository/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u OtherRepository/master
$ git commit -m "Merge OtherRepository project as our subdirectory"`
Потім, щоб перетягнути інший сховище у свій каталог (оновити його), використовуйте стратегію злиття піддерева:
$ git pull -s subtree OtherRepository master
Я зараз використовую цей метод, він працює :-)
Більш детально про цей спосіб, включаючи порівняння його з підмодулями, можна знайти в цьому документі довідки git .