Git工作流程,子模块,回购和分支.. OH MY

时间:2012-02-14 19:56:46

标签: php codeigniter github

我有一个基于CodeIgniter的项目..

我有环境配置文件夹,例如:

/* this does not get pushed to github, it stays on my development workstation */
/application/config/development
/* this is created from example_changeme, when a new client is created. */
/application/config/production
/* this one is used when creating a new client it houses the "template" of production configs */
/application/config/example_changeme

我有一个github的核心仓库,其中包括除以下文件夹以外的所有内容:

/application/config/production
/application/config/development
/application/views
/index.php

我有一个客户回购,每个客户的分支机构。这些分支有文件夹:

/* this is created from example_changeme */
/application/config/production

/application/views
/index.php

在我的开发工作站上我有一个文件夹结构:

/core/
/client/
  ggg/
  sgaz/

我需要能够对core_repo进行更改,并能够将这些更改下拉到特定分支(或客户端仓库中的所有分支)。一个示例场景是:

我将代码更改为/application/controllers

下的控制器

目前:我必须将core_repo复制/粘贴或重新克隆到每个新网站,然后重新创建我对视图所做的任何更改。

理想情况:我想简单地使用“更新”形式从 core_repo 获取更改,保留应用程序/视图和配置/生产和索引。 php in tact。

我怎么能做这样的事情?

1 个答案:

答案 0 :(得分:1)

这不容易,但我会试一试。

如果我理解正确,您可以跨多个站点/项目使用应用程序的核心版本。您希望能够将更新推送到核心版本的那些站点,而不会丢失任何项目特定的文件和文件夹,例如配置文件。

虽然你想要的东西有点复杂,但是这种设置的好方法是他们在本教程中所做的建议。 http://nvie.com/posts/a-successful-git-branching-model/

忽略每个项目不同的文件,就像现在一样。等。

至于推送到所有客户端位置,您可以按照以下答案中的建议执行此操作: Git: Pushing to two repos in one command

我不确定是否包含它,如果不是,我会很高兴再次访问:)。