2014-01-06 143 views
0

我一直在PHP中進行自定義MVC框架項目的工作,以便可以在其上構建網站,並且我在BitBucket.org上的存儲庫中擁有該項目。從另一個存儲庫更新Git存儲庫

使用此框架我想創建多個獨立的網站,每個網站都有自己的存儲庫。

是否有可能,如果是的話,我會怎麼做,將主框架複製到本地文件夾,建立一個新的網站,然後在未來如果我更新主框架,我可以繼續更新我的所有網站。

例如,我說我下載了CakePHP 2.1,並在三個不同的目錄中構建了三個不同的站點。然後他們將框架更新爲2.2,並且我只想將這些更新合併到每個網站項目中。

我對子模塊有一個模糊的理解,但我不認爲這真的是我正在尋找的東西。

+0

您應該將您的框架作爲一個包發佈,然後使用[Composer](http://getcomposer.org/)來管理各個網站的依賴關係。 – poke

回答

1

比方說,您有一個基地項目github:user/base和定製站點項目github:user/site1github:user/site2,這些項目均來自基礎項目。也就是說,site1和site2最初是從基地克隆的,然後你對它們進行了處理,它們有獨特的提交,base也是如此,所以在這一點上,所有這些存儲庫都相互分離。

儘管存儲庫已經分離,它們共享一個共同的歷史。您可以使用git merge從基礎項目中獲取更改到自定義站點項目中的更改。

最近我開始自己做這個。在站點2點到site1的,github:user/site2github:user/site1

  • upstream:在site1site2工作樹,我定義了兩個遙控器:

    1. origin兩個1和Site2點github:user/base

    當我想從基地引入更改時,我使用以下命令:

    git fetch upstream 
    git merge upstream/master 
    git push 
    

    然而,衝突在merge步驟中很常見,但這可能是因爲我的項目非常年輕,而且我在基礎上做出了相當深刻的變化。如果你能夠很好地解決衝突,這很好。

  • +0

    謝謝你的迴應。它按照我的需要工作。我試圖以一種永遠不會被使用它的網站編輯的方式來構建我的基礎。我現在得到的唯一衝突是readme.md文件。 –

    0

    最後一步(根據對主服務器的更改更新各個站點)需要在Git之外做一些工作。以下是我的設置:

    主框架存儲庫是一個Git存儲庫。它得到了其中的網站將放在那裏的東西,一些存根地點:

    main/ 
        framework/ 
        js/ 
         bla.js 
         foo.js 
        php/ 
         bar.php 
        css/ 
         start.css 
        site/ 
    

    現在克隆這個倉庫爲您的網站和(這是最重要的一點)唯一的東西添加到「現場」子目錄

    在主框架庫中,只能修改「framework」子目錄下的東西。

    如果你保留這個分區,你可以簡單地在站點倉庫中「git pull」,Git將快速合併從「main」到站點倉庫的更改。

    如果您需要對框架進行更改,但只適用於一個站點,則會出現糾紛。

    +0

    感謝您的回覆。這是一個好主意,但我的文件夾結構更加交織在一起。我使用類似的結構來創建蛋糕,而站點文件放置在框架中,但框架的核心不會被編輯。 –

    相關問題