Ответ 1
Вероятно, вы ищете подмодули:
Субмодули позволяют встроить внешние репозитории в выделенный подкаталог исходного дерева, всегда указывая на конкретную фиксацию.
Ключевое слово встроено: фактический клон Common.git будет встроен в каждый из других проектов. Это обычно хорошо, когда вы не собираетесь изменять его внутри других проектов, просто используйте одну версию и обновите эту версию с оригинального Common.git сейчас и потом. Вы сделали бы что-то вроде этого:
# add Common.git as a submodule at the path "common" inside this repo
git submodule add /var/Common.git common
# initialize it, clone, and check out a copy
git submodule update --init
# commit the addition of the submodule
git commit
Обратите внимание, что путь к субмодулю будет привязан к вашему репозиторию, поэтому вы должны использовать общедоступный URL. Если вы хотите настроить его локально, вы можете запустить git submodule init
, отредактировать URL-адрес в .git/config, а затем запустите git submodule update
. Если у вас есть дополнительные вопросы, обратитесь к man-странице или выполните поиск SO; здесь есть много вопросов о подмодулях.
Если, с другой стороны, вы собираетесь редактировать содержимое Common.git внутри каждого из проектов, вы можете использовать git-subtree, который является дружественной оберткой вокруг git поддеревьев слияния. Это позволит вам рассматривать содержимое common.git как отслеживаемый контент внутри каждого из проектов, в то же время сохраняя возможность компрометировать его и объединять в Common.git и объединять обновления с Common.git в проектах.