我们有一个定制的项目“kickstart”
这个 kickstart 可以很容易地添加模块。
当我们构建这些模块时,我们都基于版本控制的 kickstart 的一个干净的主副本来构建它们。
当我们开始一个项目时,我们创建一个空的 repo,将 kickstart repo 设置为远程,从远程拉取。当核心有更新时,我们再次从远程拉入。
这很好用。
但是我们有我提到的模块,我们将它们全部构建为一个新项目。
我们想要对所有这些模块进行版本控制。
模块的文件实际上驻留在模板中。
我们的工作流程看起来像这样
/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 存储库。
它们都包含 kickstart,它是一个 git 存储库
其中一些共享模块。
现在我们不从这些向上游推送,如果我们在站点 1 中确定某些东西运行良好,我们将检查 kickstart 的干净副本并在那里进行更改,然后将它们拉入所有不同的站点。模块也是如此。
但我的基本问题是,我们将模块放在哪里?他们取决于那里的启动。
一个想法是将它们作为 kickstart 的分支,我也听说过子模块和子树,但不知道它们是如何工作的。
构建此工作流程的最佳方式是什么?