2012-11-26 26 views
0

我有2個站點(分段和活動)。我想要有一箇中心的git倉庫,我們可以推送並部署兩個站點。從單個git回購部署2個站點

我還需要捕獲在分段和活動網站(插件安裝,主題,擴展等)上發生的代碼變化。我需要最佳結構的想法。

顯然,我們的團隊需要在本地保留中央回購的工作副本。謝謝!

+0

Capistrano在[multistaging](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension)中做得非常好。你僅限於使用git命令嗎? – PinnyM

+0

看起來很棒。回購在哪裏?它是否在現場和舞臺的工作樹木之外?如果是這樣,我們如何整合服務器上發生的變化?對不起,試圖讓我的頭在這一個! – Jongosi

+0

查看我的答案瞭解更多詳情。 – PinnyM

回答

0

您可以使用Capistrano進行多階段部署來處理您想要的任務。正在部署的回收站可以駐留在任何可以通過應用程序服務器環境訪問的位置。

例如,在最近的一個項目中,我們使用私有的GitHub倉庫作爲部署倉庫。我們在應用服務器上設置了SSH密鑰,以便使用GitHub進行身份驗證,並且可以根據我們從本地工作站發出的Capistrano命令進行部署或生產。我們的本地Capistrano實例將遠程(通過SSH)告訴應用服務器結帳並從Github上相應的分支獲取最新的到它自己的本地倉庫,將最新的代碼複製到一個新目錄中,然後通過任務清單(config修改,資產編譯,數據庫遷移等)。部署成功後,Capistrano會通知服務器切換到最新的代碼。任何打嗝,它只是回滾部署。

的命令部署很簡單,只要:cap deploycap production deploy

你可以閱讀更多的關於它here,大約多級設置here

0

我們使用的是兩個分支masterproduction。通常發展在master,這是在分期登記。

一旦一切正常,我們重置生產到掌握和強制推動。然後我們拉住production被檢出的生活。 執行所有這些操作的腳本會驗證在執行所有操作之前,現場沒有任何未經修改的更改。

對於需要在production中完成的修補程序,我們有一個選擇策略:需要立即選擇需要轉到master的更改。

值得注意的是,我們根本不合並。我們做到了,但那並沒有奏效。