使用git repo处理多个分发方法

时间:2014-10-25 00:47:03

标签: git

我一直在使用htmljscss共同开发基于浏览器拼图的游戏,并使用git进行源代码管理。
您可以使用粗略的index.html来运行游戏,并且很快就会在服务器上托管。

最近我一直在考虑创建项目的Chrome App版本/包,以便我也可以在Chrome Web Store上分发它。并将尽快考虑其他市场 这将需要将一些额外的文件添加到git仓库,这些文件特定于仓库的chrome-app版本。
随着一些次要的代码更改,允许在Chrome内完全集成。

创建原始仓库的分支并在那里处理那些chrome-app文件会更好吗?那么原始/普通游戏是否与chrome-app端口分开?
或者考虑到所需的次要代码更改,是否可以更好地单独使用git repo并在repos之间手动复制更新?

2 个答案:

答案 0 :(得分:0)

这在构建系统中可能比在源控制系统中更好地处理。将所有这些资源(对于所有分发方法)放在子文件夹中,或者为每个分发方法创建一个git存储库,并使用子模块来提取游戏代码。在存储库之间复制和粘贴代码是一个非常糟糕的主意。

答案 1 :(得分:0)

我认为有几种方法可以管理产品线,具体取决于您管理回购,分支机构,标签等的舒适程度。

一种方法是创建一个新的chrome-app回购,并在您的baseline回购中将您的原文(可能称之为chrome-app)回复列为submodule。因此,如果您使用github,您可以执行以下操作:

git submodule add https://github.com/<username>/<baseline>.git

如果您决定使用子模块,则应熟悉commands like git submodule init and git submodule update。然后,您可以使用git mergegit fetch合并来自您的上游baseline回购的新更改,并git push --recurse-submodules将更改发布回您的baseline

或者,如果您认为这是一种矫枉过正,您可以从原始仓库中分叉,以创建chrome-app仓库。由于您是这些回购的所有者,因此您可以使用git pushgit pull轻松同步它们。

即使这样太多了,(对于小型项目),您也可以分离原始仓库的master,并将所有内容保存在一个仓库中。