2010-04-06 110 views
5

我有2个项目,实际上这两个项目大约80%相同,主要区别在于语言和商业模式,一个是针对使用英语的较大用户,并且具有9美元/一个月的商业模式,另一个是使用免费增值业务模式的本地语言。使用Git维护项目

有时当我想添加新的功能/功能时,我想将它添加到这两个项目中,但也有时候我想添加功能,特别是为本地项目添加功能。

我的问题是,我该如何使用git维护这两个项目?

  1. 保持2对每一个项目的Git仓库或
  2. 保持了2张git仓库主要分支或
  3. 任何其他建议?

回答

8

创建的Git项目:

  • 一个 “核心” 的项目:它包含了另外两个 项目之间共享

  • 你的英语项目 代码:它有一个 子模块为核心加专用 代码

  • 您的翻译项目:它也 具有核心加 特定代码

这种方式,你可以改变你的核心项目,更新子模块的引用,你会是不错的

+0

子模块是这样做的方式。每个人都需要清楚发生的事情,但一旦发现这是最不重要的工作。 – 2010-04-06 20:13:59

2

一个子模块是否有可能你通过配置和本地化来处理?那就是:

  • 一个代码库
  • 两个定位包含英语和当地语言的字符串为网站的每个版本确定的支付模式/启用的功能,并相应地改变行为
  • 配置文件

    我个人认为,一个项目=一个存储库。如果你的网站显然非常不同,那么我仍然认为你的问题可以通过将通用代码重构为模块来更好地处理,这些模块可以通过合理,可控的方式进行配置和修改。如果你允许每个项目都有自己的git仓库,那么他们可以很容易地发散和包含不易跟踪的差异,引入微妙的错误或未经测试的功能。