处理克隆应用程序的最佳方法?

时间:2014-03-08 02:22:55

标签: git branching-and-merging

假设我有一个简单的手机游戏,Fruit Wars *。玩家互相射击橙子,苹果,香蕉,菠萝等,收集积分,升级等等。它做得很好,我现在想做类似的标题 - 蔬菜大战,寿司大战,无麸质素食犹太洁食战争等等,都基于经典水果大战的相同代码库。使用Git管理这些克隆的代码库的最佳策略是什么,记住以下几点:

(1)克隆之间的大部分功能都是相同的,除了图形,UI文本,以及一些可能以微小方式改变游戏玩法的小功能添加/更改。

(2)“核心”代码库的添加,如错误修复,应该只进行一次并轻松合并到克隆中。

(3)不应允许克隆特定功能(或应该非常困难)向上游推送到“核心”游戏代码库。例如,如果我向Sushi Wars添加一个自己的roll minigame,那么Vegetable Wars代码库应该不受影响。

我的直觉是用Git子树。我应该考虑哪些其他选择?

* 我实际上与任何可能存在的名为Fruit Wars

的游戏无关

1 个答案:

答案 0 :(得分:2)

另一种选择是在你的其他项目git repo中声明一个“core”git repo,作为 submodule

submodule can be set to follow a branch以来,一旦您在core中进行了修改,您在使用core的其他项目中需要做的就是:

git submodule update --remote.

由于roll Sushi Wars中的Sushi Wars小名称将添加到Sushi_Wars/core树中(但不会core中),{{1}}回购邮件永远不会知道这个新功能。