将 git 存储库用于多个项目


Using a git repository for multiple projects

我最近开始使用git,并使用bitbucket来托管我的代码。我对制作分支、合并它以及推、拉等基础知识感到满意,但现在有一个我不确定的情况。

我基本上开发了一个我希望在多个项目中使用的 cms。我有一个存储库,我称之为"cms_template"。

每当我想创建一个新项目时,我都会将其克隆到一个新的存储库中。

基本上我的问题是:我有网站 A 和网站 B。两者都是cms_template存储库的克隆,但显然会发生变化,因为它们是不同的网站。我不想将这些更改推送回cms_template存储库,但是当我更新cms_template存储库时,我希望这些更新可以"拉取"到每个网站中。如何最好地将对原始cms_template所做的任何更新合并到这些项目中?

我也希望能够将网站 A 和 B 推送到他们自己的远程存储库,但对执行此操作的最佳方法感到困惑,并且不与cms_template存储库冲突。

希望我的问题有意义 - 如有必要,我很乐意澄清。

感谢您的建议。

你应该真正考虑使用Composer进行依赖管理。这样,您只需需要某个版本的CMS,并且可以独立于其他项目进行更新。

您还可以避免 git 子模块的麻烦,据报道这些子模块有其问题(我无法对此发表评论,因为我自己没有使用它们,但我有点害怕,如果可能的话可能会避免它们)。

使用 composer 就像下载 phar 文件并将composer.json文件添加到所有存储库中以声明依赖项和元数据一样简单。您还可以免费获得自动加载器,并且能够包含任何其他提供 Composer 元数据或在 http://packagist.org 注册的库(这很多。

有关详细信息,请参阅 http://getcomposer.org/。

听起来像是 git 子模块的完美设置(有关更多信息,请参阅 http://git-scm.com/book/en/Git-Tools-Submodules)

编辑:保留主cms分支上的单个更改,并使用子模块将这些更改拉入到项目中。随时更新您的主 cms 分支,然后重新定位网站 a/b 分支。