2012-02-14 71 views
1

我有一個基於CodeIgniter的項目..Git的工作流程,子模塊,回購的和樹枝.. OH MY

我的環境配置文件夾,如:

/* 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的變化呢,保持應用程序/視圖和配置/生產的index.php機智。

我該如何去做這樣的事情?

+0

我有一個類似的,雖然稍微不復雜的問題。我正確理解你有3個位置,我們可以在3個不同的「變體」中找到你的項目,每個變體都有自己的配置文件夾? – bottleboot 2012-02-15 14:07:57

+0

每個'/ application/client1'文件夾都是它自己的封裝應用程序文件夾。儘管現在控制器/模型/庫/助手都是相同的,但它們可能會有所不同。 CI支持多個應用程序,如上所示,但只有在你的docroot中有一個自定義的index.php文件。IE:ggg.php,index.php,sgaz.php – gorelative 2012-02-15 14:10:01

回答

1

這並不容易,但我會試試看。

如果我理解正確,您可以跨多個站點/項目使用應用程序的核心版本。您希望能夠將更新推送到核心版本的這些站點,而不會丟失任何項目特定的文件和文件夾,例如配置文件。

雖然你想要的更復雜一點,但這樣的設置的好方法是他們建議他們在本教程中所做的事情。 http://nvie.com/posts/a-successful-git-branching-model/

忽略每個項目不同的文件,就像現在一樣。等等。

至於推到所有的所有客戶端的位置,你可以這樣做,因爲在這個答案建議: Git: Pushing to two repos in one command

我不知道,如果覆蓋,如果不是我會很高興重溫:)。