项目相互建立

时间:2013-05-06 14:36:01

标签: git

我正在使用Kohana框架开发PHP(问题与PHP或Kohana无关,所以请继续阅读)。

这意味着我通过从Github克隆Kohana的回购开始我的所有项目,并开始构建我的应用程序。

第1步:基础应用

然而,为了让我的生活更轻松,我创建了一个存储库 - 让它命名为base-app,我根据自己的需要对框架进行了个性化。
基本上我创建了静态文件的文件夹结构,添加了一些JS和CSS文件,我将在以后的所有项目中使用它们(比如normalize.css,jquery.js,我的JS框架等)。我还注册了一些我写的子模块,并将这个新的仓库推到了遥控器上 大!现在我有一个基础应用程序(我喜欢称之为 skeleton ),每次我开始一个新项目时都可以克隆。

第2步:验证

在大多数应用中,我们还需要一个身份验证系统。所以我继续发展 我创建了一个auth子模块来帮助我,但我还需要为login创建一些视图,控制器,JS和CSS文件(我不能只是放在子模块中), recover-passwordreset-password等页面。命名为repo base-app-auth,并推送到遥控器。

大!现在我有了一个基于base-app-auth的新存储库base-app,当我想创建一个已经实现的登录系统(控制器,模型,视图,js,css)的应用程序时,我可以克隆。 / p>

第3步:账户&付款

在我未来的至少两个项目中(可能还有许多其他项目),我还需要一个管理帐户(订阅)和付款的解决方案。
所以我继续发展。基于base-app-auth我实施了一个接受付款(通过PayPal)和管理订阅的解决方案。此存储库还具有新视图,控制器,模型以及新的css和js文件。 (不,我不能简单地将它们放在子模块中)。

大!现在我有一个我可以克隆的存储库,当我想创建一个新的应用程序时,已经实现了登录系统和帐户/支付管理。

问题:

问题是现在我有3个存储库。保持同步是 * 的痛苦。

我的意思是,当我在base-app中修复错误或在其中开发新功能时,我还希望其他两个存储库进行这些更改。所以我必须克隆另外两个并从base-app拉出更改,然后将它们推回到远程。

我正在寻找更好的解决方案。

可能的解决方案:

我可以想到一个可能的解决方案是将所有3个“应用程序”放在不同分支上的单个存储库中(因为它实际上是一个应用程序)。因此,当我启动一个项目时,我会克隆存储库并决定要检出的分支。

如果我不需要身份验证和帐户&付款管理功能我结帐base-app分行。如果我需要身份验证但不需要帐户和付款我结帐base-app-auth分支,依此类推。

这是一个很好的解决方案吗?还有更好的吗?在Git中管理这些“级联”项目的好方法是什么?

0 个答案:

没有答案