2014-02-03 3 views
0

У меня есть много интернет-магазинов на базе OpenCart и вы хотите создать для них систему развертывания. Моя идея заключается в том, чтобы тянуть GitHub репозиториев шаг за шагом в один каталог, например:Объединить много репозиториев github в один каталог

  1. OpenCart из официального репо
  2. Тема из моей частной репо
  3. модули (можно добавлять или обновлять файлы в/администратора,/vqmod,/Каталог каталоги)
  4. Другие изменения

... и развернуть его на сервере производства.

Пожалуйста, сообщите мне, что является лучшим решением для этого? Должен ли я просто объединить все репозитории в один каталог или использовать подмодули?

Спасибо!

+0

Из моего опыта, используя GitHub , подмодули создают каталог. Поэтому, если это не подойдет вам, я просто перейду к сценарию, который вытаскивает репозитории каждый в своей собственной папке, а затем копирует их в другую. Хотя это не сексуальное решение. – Micka

+0

Micka, к сожалению, модули OpenCart добавляют файлы во многие каталоги, 90% из них не перезаписывают существующие файлы, а добавляют новые файлы. –

ответ

1

Похоже, вы просто хотите объединить несколько репозиториев и филиалов в свою текущую ветку.

Во-первых, добавить все остальные операции РЕПО в качестве пультов дистанционного управления:

git remote add official url_to_OpenCart_official_repo 
git remote add themes url_to_private_repo 
git remote add modules url_to_modules_repo 

Тогда каждый раз, когда вам нужно сделать релиз:

git checkout -b release/whatever 
git merge official/master themes/your_branch modules/your_branch 
git push origin -u release/whatever 

После этого сложного слияния, вы хотите сделать некоторые дополнительные испытания.

Если вы объединяете более одной ветви за раз, предпринимается попытка слияния Octopus, что означает, что она попытается объединить все ветви, указанные до тех пор, пока это можно сделать чисто. Если есть конфликты слияния, слияние не удастся. В вашем конкретном случае я вижу, что существуют конфликты слияния. Вы должны объединить свои филиалы по одному:

git merge official/master 
    <resolve merge conflicts> 
git merge themes/your_branch 
    <resolve merge conflicts> 
git merge modules/your_branch 
    <resolve merge conflicts> 

Этот другой переполнения стека вопрос дает хороший обзор Гит Merge стратегий и когда использовать их: When would you use the different git merge strategies?

+0

При объединении «git merge official/master themes/master» он выдает ошибку - фатальный: может сливать только ровно одну фиксацию в пустую голову. До этого я должен был сделать «git pull official master» «git fetch official». И затем получение «фатальных: темы/мастер - не то, что мы можем объединить», –

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