简介
目前,我正在为R& D使用git。
我正在写CreateJs为我的工作制作一些HTML5游戏。比方说,我做了5个故事,每个故事都有一个独特的主题和4个游戏,而且4个游戏非常相似。
我想在CreateJS API的顶部进行抽象以适应我的项目。也就是说,我想在我的游戏上编写标准的基本抽象,并直接在我的项目中调用它。为了确保每个游戏可以独立,安全和IDE友好运行,我不想拉出核心在4个游戏中共享相同的核心。但最有可能的是,核心应该是相同的。
Story1
|----game1
|----|----core
|----|----|---- abstraction class
|----|----controller/models
|----game2
|----|----core
|----|----|---- abstraction class
|----|----controller/models
|----game3
|----|----core
|----|----|---- abstraction class
|----|----controller/models
|----game4
|----|----core
|----|----|---- abstraction class
|----|----controller/models
抽象类可能: createjs_actor
createjs_button
createjs_dialog
createjs_draggable_item
createjs_droppable_item
createjs_switch
....等等,以便我可以轻松扩展它,比方说,
Hero extends CreatejsActor {}
Walker extends CreatejsActor {}
如果用户要求发生变化,这些类必须稍后修改/添加更多功能。 通过手动将文件复制并粘贴到每个游戏文件夹来防止更新这些类
我决定在git上执行此操作:
每个故事都有自己的存储库
在大师
在每个游戏上创建一个分支(即 game1,game2,game3,game4 ),这些分支永远不会被合并,但会在主人身上进行一些更新
问题:他们有更好的方法吗?或者这可能吗?
答案 0 :(得分:2)
可能更容易为core
和每个游戏设置单独的存储库。如果您想将游戏与core
的特定版本绑定,请尝试使用git submodules。您只需将core
放在子目录中。
答案 1 :(得分:1)
使用Git子模块的另一种方法是将核心模块打包为 npm包。这将是它自己的Git仓库,你可以在其上放一个版本号,你可以在你的个别项目中引用它。
对于开发,您可以使用类似npm link
的内容链接到核心模块。
使用模块是使用可重用库的标准方法。
注意:对于服务器端库,您可以使用npm
,或者对于客户端库,使用bower
之类的操作。概念是相同的,它们只是一个不同的工具和配置文件。