Git рабочий процесс для подпроектов?

У нас есть нестандартный проект "Кикстарт"

Этот кикстарт может иметь модули, добавленные в него довольно легко.

Когда мы собираем эти модули, мы строим их все на основе одной чистой мастер-копии кикстарта, которая контролируется версией.

Когда мы запускаем проект, мы создаем пустое репо, настраиваем репо кикстарта как удаленное, Pull from remote. Когда происходит обновление ядра, мы снова просто подключаемся с пульта.

Это хорошо работает.

Но у нас есть модули, которые я упомянул, мы строим их на чистом старте как новый проект.

Мы хотим, чтобы контроль версий всех этих модулей.

Файлы для модулей фактически находятся внутри шаблона.

Наш рабочий процесс выглядит примерно так

/site 1
  /kickstart
    /module1
      /module1 files
    /module2
      /module2 files
  /site 1 specific file
  /site 1 specific file

/site2
  /kickstart
    /modification of kickstart file for site2 only (e.g. config.php)
    /module2
      /module2 files
    /module3
      /module3 files
  /site 2 specific file
  /site 2 specific file

/site3
  /kickstart
    /modification of kickstart file for site3 only (e.g. config.php)
    /module1
      /module1 files
    /module3
      /module3 files
  /site 3 specific file
  /site 3 specific file

Итак, сайты 1,2 и 3 являются собственными Git-репозиториями.

Все они содержат кикстарт, который является git-репозиторием.

Некоторые из них делятся модулями.

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

Но мой основной вопрос: куда мы помещаем модули? Они зависят от кикстарта.

Одна идея состояла в том, чтобы сделать их ветвями кикстарта, я также слышал о подмодулях и поддеревьях, но не знаю, как они работают.

Каким будет лучший способ структурирования этого рабочего процесса?

1 ответ

Решение

Помещение этих трех сайтов в их собственное Git-репо (в отличие от использования одного репо с тремя ветвями) означает, что вам не нужно делать много (если есть) слияний между сайтами 1, 2 и 3: все 3 имеют только один пульт: kickstart Сделки РЕПО.

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

Другие вопросы по тегам