В svn вы можете связать репозиторий с любой папкой в другом репозитории svn. Мне интересно, есть ли подобная функция для git? В принципе, я хочу подмодуль git внутри моего репозитория, но я хочу, чтобы подмодуль был указателем на подпапку другого репозитория git, а не на весь репозиторий. Возможно ли это?
Git Подмодуль к подпапке
Ответ 1
Git не поддерживает частичные проверки, поэтому submodule должен указывать на полный репозиторий.
Этот поток в списке писем Git содержит некоторую справочную информацию.
Эта статья от Panther Software дает представление о том, что кто-то пытается достичь аналогичной цели (т.е. реплицировать svn:externals
с помощью Git).
Если оба проекта находятся под вашим контролем, я предлагаю вам изолировать "подпапку", которую вы заинтересовали, к ее собственному автономному репо. Тогда оба проекта могут создавать подмодули, которые ссылаются на него.
Ответ 2
Я столкнулся с той же проблемой. Он не выглядит разрешимым с уровня git, по крайней мере, не таким образом, который позволяет легко тянуть или нажимать на родительское репо.
Однако вы можете обойти это ограничение, используя простую символическую ссылку:
- Настройте ваш подмодуль в отдельном каталоге.
-
git submodule add http://example.com/repo.git./submodules/repo
-
- Создайте символическую ссылку в подпапку в том месте, где вы хотите:
-
ln -s./submodules/repo/subdirectory./wherever/symlinked_directory
-
Рекомендации:
Ответ 3
Обычно, когда вы пытаетесь извлечь подпапку какого-либо другого проекта, эта подпапка должна быть отдельным проектом в первую очередь, и оба родительских проекта должны ссылаться на него.
Вы можете извлечь такую историю подпроектов, используя инструмент, например git поддерево. Затем вы можете связать поддерево обратно в свой проект, используя подмодуль git или git, в зависимости от того, что вы предпочитаете.