Git поддерево: использовать только субрепозитор вместо целого хранилища - программирование
Подтвердить что ты не робот

Git поддерево: использовать только субрепозитор вместо целого хранилища

У меня есть проект, который использует некоторые сторонние библиотеки. Таким образом, структура каталогов выглядит примерно так:

MY_COOL_PROJECT
   3rdParty
      LIB_1
      LIB_2
   Source
      MY_PROJECT   

Библиотеки расположены в отдельных хранилищах. Итак, если я хочу использовать репозиторий git для сторонних библиотек, я могу сделать:

git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master

Однако внутри репозитория lib1.git есть только одна папка с бинами, в которой я нуждаюсь. Он также содержит папки, такие как документация, примеры и т.д. Как я могу только "подключить" мой репозиторий к папке lib1/bin вместо всего репозитория? Возможно ли это?

4b9b3361

Ответ 1

Обычно репозиторий git выполняется для полного клонирования/загрузки.

Вы можете выбрать редкую проверку (Git1.7 +), но только если вы не намерены делать какие-либо изменения и оттолкнуть их назад. См. этот пример:

$ git init
Initialized empty Git repository in /tmp/si-sandbox/.git/
(master) $ git config core.sparsecheckout true
(master) $ echo message-store/ >> .git/info/sparse-checkout
(master) $ git remote add origin git://github.com/iwein/Spring-Integration-Sandbox.git
(master) $ git pull origin master

OP user2070238 отчеты:

Это сработало с несколькими изменениями.
Поскольку я использую подмодуль, мне пришлось использовать

 echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout 

И по какой-то причине часть MY_FOLDER/ не работала без *