我正在使用GIT来管理内容管理系统(CMS)项目。 CMS可以有多个插件(模块)。Git子模块或子存储库或远程?
所以基本上,我想有3种类型的存储库:
- 核心CMS开发(每个新项目是去年稳定&未配置的版本结帐)每个模块/插件
- 1库。 (每个新项目将签出他们想要实现模块的最新稳定版本)每个项目
- 1库(每个客户端将是表示从核心CMS和模块的个性化信息库)
对于类型1 & 2,我想这是简单的基本知识库。 但是,当它来到客户项目,我会感到困惑:
- 首先我会克隆CMS,然后再在/模块/文件夹,然后再克隆所有需要的模块?这将在存储库中创建一个存储库!第一个回购会尝试记录每个模块的.git /文件夹吗?
- 我无法使用子模块,因为每个客户端都需要对其模块进行个性化设置。
- 如果我修改模块的核心组件(而不是个性化,只是一个错误修复),我可以将单个文件推送到原始模块存储库吗?
- (不说话的模块单元测试是将各地分散的)
所以,问题是: 我应该如何组织库(S)/文件/文件夹,以提高效率?
嗯,我读过了git help submodule,他们说:“它们不能与遥控器相混淆,遥控器主要用于同一项目的分支机构;子模块用于您想要参与的不同项目的源代码树,而两个项目的历史仍保持完全独立,并且不能从主项目内修改子模块的内容。“ ...在我的情况下,我想要修改客户端项目中的子模块,以防需要个性化插件。现在你告诉我,我们可以修改子模块? – FMaz008 2011-03-27 11:39:58
是的。修改客户端的插件代码,提交并将更改推送到(2),然后转到客户端的CMS代码,并提交并将更改推送到插件(更新SHA哈希)为(1)。 – 2011-03-27 23:19:11
好吧,听起来像一个很好的答案,但我仍然有一个关于文件夹组织/结构的补充问题:http://stackoverflow.com/questions/5461617/using-git-and-submodule-whats-a-good-folder -结构体 – FMaz008 2011-03-28 15:50:31