1

我有一个用于多个项目的 CMS 框架,由我编写。当我做我的项目时,CMS 得到了改进,我经常想在后续项目中使用这些更改。然而,我经常同时进行多个项目。

在阅读了 git 之后,我知道我可以分支每个项目并将 CMS 改进提交回主分支,然后重新分配到其他分支,但这似乎是错误的。尤其是在一些项目已经完成但核心 CMS 看起来与他们使用它时的样子非常不同的几年里。这也意味着在项目之间切换时在分支之间切换。当我在该机器上创建存储库时,我使用它的每台机器都会获得每个分支的副本吗?

另一种选择似乎是克隆。我有一个包含“核心”CMS 的主存储库,每个项目都成为它的克隆,并且单独工作。这看起来更直观,但是我可以将克隆中的一些更改合并回核心,并且我可以将核心更改分发到其他克隆吗?

编辑:多想一下,克隆是我认为将回购复制到机器上的术语(我使用了几个,我想跟上一些项目的最新版本)。所以也许我应该“分叉”?那只是github的事情吗?

任何一个选项似乎都是正确的方法吗?所有建议表示赞赏

4

2 回答 2

0

我实际上遇到了类似的问题。所以我所做的是创建 2 个存储库。一个具有应用程序的核心,每个实例都必须具有才能工作。

除此之外,每个实例的特定文件和配置都有一个存储库。

core-repo 用版本号标记,其中核心主控上的每个标记都是一个工作版本。

这允许签出特定标签并将单个数据保存在实例存储库中。您不能使用此设置将特定代码保留在实例存储库中并合并到其他实例中。如果您只拥有 1 个实例 repo 并将每个实例分支到那里,或者您可以使用一些 lile composer (www.getcomposer.org) 来保持您的依赖关系,您就可以这样做。

于 2013-04-11T06:53:24.457 回答
0

另一种选择似乎是克隆。我有一个包含“核心”CMS 的主存储库,每个项目都成为它的克隆,并且单独工作。这看起来更直观,但是我可以将克隆中的一些更改合并回核心,并且我可以将核心更改分发到其他克隆吗?

对于遇到这种情况的任何其他人 - 克隆是去这里的方式。它允许您将所有站点作为计算机上的单独文件夹,因此您可以轻松切换而无需检查分支等。然后它允许您将更改从每个克隆推送到生产服务器和/或返回到核心存储库(来源)。然后,您可以从原点将更改推送到您喜欢的任何其他实例上。巧妙地使用.gitignore--assume-unchanged并调整每个项目以具有“主题”文件夹意味着您可以推动所有更改,而不必过多担心一个站点的个性会覆盖另一个站点。

于 2013-04-17T13:03:58.780 回答