【问题标题】:Using a git repository for multiple projects为多个项目使用 git 存储库
【发布时间】:2013-10-13 19:30:01
【问题描述】:

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

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

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

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

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

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

感谢您的建议。

【问题讨论】:

标签: php git github bitbucket


【解决方案1】:

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

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

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

请参阅http://getcomposer.org/ 了解更多信息。

【讨论】:

  • 谢谢斯文!我以前使用过作曲家,但没有考虑过。好主意也会研究这个
【解决方案2】:

这听起来像是 git 子模块的完美设置(在http://git-scm.com/book/en/Git-Tools-Submodules 上查看更多信息)

编辑:保留来自 master 的 cms 分支上的个别更改,并将使用子模块的更改拉入您的项目中。随时更新您的主 cms 分支,然后重新设置网站 a/b 的基础。

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    相关资源
    最近更新 更多