2016-11-25 16 views
1

У нас есть 4 репозитория с исполняемыми файлами, и когда я клонирую любые 1 из них, я хочу также клонировать все 8 репозиториев с библиотеками в папки рядом с исполняемой папкой. Исполняемые файлы - это что-то вроде услуг, и все 4 из них будут использовать последние версии из основных хранилищ библиотек. Я также хочу клонировать все 8 репозиторий библиотеки, когда я клонирую любые 1 из них.Как автоматически загружать те же 8 репозиций для каждого из 4-х репозиций в git?

So I can for example 
clone executable1 and have folders: 
executable1-library1-..-library8 
or clone library1 and have folders: 
library1-..-library8 
or end up cloning all of the executables and have folders: 
executable1-..-executable4-library1-..-library8.

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

Я думал о подмодулях, но их документация ужасна, возможно, вся функция плохая, я не знаю. Затем я думал о поддеревах и других структурах из git. Также есть вероятность, что я всегда буду просто клонировать все 8 библиотек отдельно вручную, что было бы грустно.

So what is the best way to 
1) automatically download all of the 8 libraries to their folders (next to the folder of the executable if it was caused by cloning executable)? 
2) automatically download all of the 8 libraries to their folders next to the folder of the executable during the cloning of the executable?

Первый вариант более простой - чтобы это было сделано в 2 этапа (1.executable + 2.libraries), второй путь лучше для меня, просто это было сделано в 1 стадии (исполняемый & библиотеки вместе).

Часть моего вопроса была решена здесь: Git: Possible to use same submodule working copy by multiple projects?

Я также хочу, чтобы внести изменения в библиотеки, даже если они были загружены с исполняемым и раздвинуть эти изменения в свои хранилища.

EDIT: Я добавил последнее предложение и добавил, что также 1 библиотека также должна загружать другие библиотеки.

+0

Субмодули - это обычные репозитории git: вы можете создавать ветки и добавлять свои коммиты и нажимать. Мой ответ стоит. – VonC

+0

Ответ хороший, и я как-то ожидал этого, но я думал, что будет больше идей и сравнения между ними и т. Д., Но никто, вероятно, не заинтересован. Я должен сначала подумать об этом и попробовать его на каком-то репозитории sandbox. –

ответ

1

Вы все еще можете использовать подмодуль и register them (in each repo) to follow their own master branch.

git submodule add -b master -- /url/library1 

Тогда простой git clone --recursive будет достаточно, чтобы получить все подмодуль содержимого обратно.
A git submodule update --remote гарантирует, что они отражают свое последнее состояние ветвей власти.

 Смежные вопросы

  • Нет связанных вопросов^_^