我正在研究几个不同的Joomla附加组件,但是希望将它们作为单独的git repos保留,因为它们有不同的开发团队(甚至是组织)。但是,我还希望将它们保存为共享相同Joomla基础的单个目录(.gitignore会忽略它)。由于Joomla的结构,这可能有点复杂,因为它具有以下结构:
/joomla/
|--/administrator/
|--|--/components/
|--|--|--/component_a/
|--|--|--/component_b/
|--|--/language/
|--|--|--/en-GB/
|--|--|--|--/component_a_lang.ini
|--|--|--|--/component_b_lang.ini
|--/components/
|--|--/component_a/
|--|--/component_b/
|--/language/
|--|--/en-GB/
|--|--|--/component_a_lang.ini
|--|--|--/component_b_lang.ini
我知道我可以制作一个中央仓库,并为每个子项目使用分支,只需要小心使用右边的子项目。但有没有一种更简单的方法(子模块?)将所有子项目保存在同一目录中,所以如果我想复制整个项目进行测试,我不需要切换分支并使用copy-pasta进行播放?
答案 0 :(得分:3)
通常我会建议使用子模块,但在这种情况下,由于项目的结构,它们并不合适。
子模块放在一个目录中,因此您无法将它们真正地分散到整个项目中。
一种可能的解决方案是将所有这些文件放在一个目录中,并使用符号链接将它们放在正确的位置。但这有几个缺点。您需要重新创建每个存储库上的所有符号链接,这也会导致Windows用户出现问题。
答案 1 :(得分:3)
正如@Ikke所说,代码在目录中传播的方式使得使用子模块来保存这些代码很麻烦。
我认为我只是使用单独的分支来进行单独的开发。他们是“特色”,对吧?或多或少?因此将它们视为特征分支可能是相当合适的。
如果您的中央存储库由gitolite提供服务,您可以按分支设置访问权限以分隔用户和组。你可以这样做,这样每个人都可以读取每个分支(对于测试很重要),但只有受祝福的组才能推送到他们自己的分支。