假设我有一个简单的手机游戏,Fruit Wars *。玩家互相射击橙子,苹果,香蕉,菠萝等,收集积分,升级等等。它做得很好,我现在想做类似的标题 - 蔬菜大战,寿司大战,无麸质素食犹太洁食战争等等,都基于经典水果大战的相同代码库。使用Git管理这些克隆的代码库的最佳策略是什么,记住以下几点:
(1)克隆之间的大部分功能都是相同的,除了图形,UI文本,以及一些可能以微小方式改变游戏玩法的小功能添加/更改。
(2)“核心”代码库的添加,如错误修复,应该只进行一次并轻松合并到克隆中。
(3)不应允许克隆特定功能(或应该非常困难)向上游推送到“核心”游戏代码库。例如,如果我向Sushi Wars添加一个自己的roll minigame,那么Vegetable Wars代码库应该不受影响。
我的直觉是用Git子树。我应该考虑哪些其他选择?
* 我实际上与任何可能存在的名为Fruit Wars
的游戏无关答案 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}}回购邮件永远不会知道这个新功能。