2016-01-26 2 views
0

У меня есть репозиторий git, который я использую для нашей незаменимой конфигурации. Структура каталогов такова:Несколько проектов в git (поддеревьях)

ansible 
|---Site 
`---Roles 
     |---Common 
     `---other_project 

Это в git, и оно является частным, так как только моей команде нужен доступ к этому.

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

Главное, что у меня есть ветка развития и ветвь мастера. Как только код кода стабилен, он перемещается в master с --no-ff, так что в главном вы видите только стабильные релизы и ничего между ними.

Как это сделать с помощью other_project. Есть ли способ использовать ветви для поддерева? Как мне затем объединить одну ветку в другую и обменять между ними?

ответ

0

Вы имели в виду Git Submodules?

С уважением.

+0

Да, но я не вижу, как они помогут. Если вы можете указать мне на то, что поможет объяснить, как они могут работать в таком потоке работы или как иметь отдельные ветви, тогда я снова посмотрю. – user26582

+0

Я думаю, что это именно то, что вы ищете. 'other_project' должен стать git-подмодулем. В моем ответе есть ссылка. – mschonaker

+0

Кстати, эта ветвящаяся модель выглядит ужасно для меня. Независимо от того, я бы никогда не объединил функции несовместимых ветвей. – mschonaker

0

Если я получу вашу структуру правильно, то other_project просто роль. Затем вы можете использовать Ansible Galaxy для его установки.

Для этого вам просто нужно requirements.yml в вашем анзибль корневой папке с некоторым содержанием, как это:

- src: https://github.com/your/role 
    version: master 
    name: other_project 

Затем установите его с ansible-galaxy install -r requirements.yml

См here подробности.

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