我最近开始使用git并使用bitbucket来托管我的代码。我很熟悉基础知识,例如制作分支,合并它,推动,拉动等等,但现在有一种我不确定的情况。
我基本上开发了一个我希望在多个项目中使用的cms。我有一个存储库,我称之为'cms_template'。
每当我想创建一个新项目时,我只需将其克隆到一个新的存储库中。
基本上我的问题是:我有网站A和网站B.两者都是cms_template repo的克隆,但显然会有自己的变化,因为它们是不同的网站。我不想将这些更改推回到cms_template repo,但是当我更新cms_template repo时,我希望这些更新可以“拉入”每个网站。我如何最好地将我对原始cms_template所做的任何更新合并到这些项目中?
我也希望能够将网站A和B都推送到他们自己的远程存储库,但我对这样做的最佳方式感到困惑,并且与cms_template repo没有冲突。
希望我的问题有道理 - 如果有必要,我很乐意澄清。
感谢您的建议。
答案 0 :(得分:1)
您应该真正考虑使用Composer进行依赖关系管理。这样,您只需要一个特定版本的CMS,并可以独立于其他项目更新它。
你也避免了git子模块的麻烦,据报道这些子模块存在问题(我不能对此进行评论,因为我自己没有使用它们,但我害怕一点,如果可能的话可能会避免使用它们)。
使用composer就像下载phar文件并在所有存储库中添加composer.json
文件以声明依赖项和元数据一样简单。您还可以免费获得自动加载器,并且可以包含任何其他提供Composer元数据的库或在http://packagist.org注册的库(这是很多。
有关详细信息,请参阅http://getcomposer.org/。
答案 1 :(得分:0)
这听起来像是git子模块的完美设置(请参阅http://git-scm.com/book/en/Git-Tools-Submodules的更多信息)
编辑:对来自master的cms分支进行单独更改,并将使用子模块的那些更改到项目中。每当更新你的主cms分支,然后在a / b之后重新设置网站。