这个git设置是否正确?

问题描述:

我有一个CMS框架,我用于多个项目,由我编码。当我执行我的项目时,CMS得到了改进,我经常希望在后续项目中使用这些更改。 但是,我经常在旅途中有多个项目。这个git设置是否正确?

在读完git之后,我知道我可以分解每个项目并将CMS改进提交给主服务器,然后重新分配给其他分支,但这似乎是错误的。特别是在一些项目完成的几年时间里,但核心CMS与他们使用它时的情况截然不同。这也意味着在项目之间切换时在分支之间切换。当我在该机器上创建回购时,每台机器上都会使用它的每个分支的副本吗?

其他选项似乎是克隆。我有一个包含'核心'CMS的主要回购协议,每个项目都成为这个的一个副本,并分别进行工作。这看起来更直观,但我可以将克隆中的一些更改合并到核心,并且可以将核心更改分发给其他克隆吗?

编辑: 更多地思考它,克隆是我认为将复制品复制到机器上的术语(其中我使用了几个,我希望能够跟上某些项目的最新版本)。所以也许我应该'分叉'?那只是一个github的东西?

这两个选项看起来都是正确的方法吗?所有建议赞赏

其他选项似乎是克隆。我有一个主要的回购包含 '核心'CMS,每个项目成为这个克隆,并分别在 工作。这看起来更直观,但是我可以将克隆中的一些更改合并到核心,并且可以将核心更改分发给其他克隆吗? ?

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

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

最重要的是每个实例的特定文件和配置的存储库。

core-repo标有版本号,核心主设备上的每个标签都是工作版本。

允许检出一个特定的标签,并将个别数据保存在实例仓库中。你不能用这个设置做什么是在实例仓库中的特定代码,并合并到其他实例中。如果你只需要一个实例repo,并在那里分支每个实例,或者你可以使用lile composer(www.getcomposer.org)来保持你的依赖关系,你可以做到这一点。

+0

谢谢,它是一个有趣的想法,但我找到了一种适合我的方式。 – fiscme 2013-04-17 13:04:29