与Git合作的项目是他们的更好的方法还是可能的?

时间:2014-12-09 05:56:05

标签: git

  

简介

目前,我正在为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上执行此操作:

  1. 每个故事都有自己的存储库

  2. 大师

  3. 中实现每个故事的基本结构
  4. 在每个游戏上创建一个分支(即 game1,game2,game3,game4 ),这些分支永远不会被合并,但会在主人身上进行一些更新

  5.   

    问题:他们有更好的方法吗?或者这可能吗?

2 个答案:

答案 0 :(得分:2)

可能更容易为core和每个游戏设置单独的存储库。如果您想将游戏与core的特定版本绑定,请尝试使用git submodules。您只需将core放在子目录中。

答案 1 :(得分:1)

使用Git子模块的另一种方法是将核心模块打包为 npm包。这将是它自己的Git仓库,你可以在其上放一个版本号,你可以在你的个别项目中引用它。

对于开发,您可以使用类似npm link的内容链接到核心模块。

使用模块是使用可重用库的标准方法。

注意:对于服务器端库,您可以使用npm,或者对于客户端库,使用bower之类的操作。概念是相同的,它们只是一个不同的工具和配置文件。