2010-08-24 40 views
3

在我的公司,我們現在使用了git幾個月了(我們很高興),但是我們仍然沒有得到 git的完整100%。使用git維護webapp的不同版本的工作流程?

我們的主要產品是我們提供不同語言的網站(前端+管理後端)。其中一些網站提供其他人不應提供的功能(例如,需要填寫給定表單的字段類型,不同的驗證規則集等)。

由於這些差異相當小,我們現在使用配置文件來確定網站是否應使用特定元素。但我想這會在網站之間的差異變大時造成問題。

我想使用不同的分支將使這更容易維護,但你如何維護不同的分支與一個共享的核心?我們目前還沒有使用像Capistrano這樣的部署工具(但正在計劃這樣做),因此無法從主服務器到所有不同的分支機構進行無休止的手動選擇,現在不是一種選擇。

因此,考慮到這種設置,分支機構如何幫助我們?

master 
| 
- english 
| 
- german 
| 
- french 

(爲了澄清:這是不是本地化/國際化,而是共享分支之間的核心功能)

回答

1

聽起來像是你」 d想要使用子模塊。這將允許您將所有共享功能保留爲一個存儲庫,並將各個站點作爲自己的存儲庫來跟蹤共享子模塊中的更改。很多不錯的(雖然有點簡潔,如通常的git文檔)info here,包括一個網絡廣播。

從鏈接頁面:

Git的子模塊支持允許 存儲庫包含作爲 子目錄,一個 外部項目的結算。子模塊維護自己的身份 ;子模塊 支持只是存儲的子模塊 倉庫的位置和提交ID,所以 誰克隆 含項目(「上層項目」)其他開發商 可以輕鬆克隆所有子模塊在 同一版本。部分結賬 的超級項目是可能的:你可以告訴Git克隆沒有,一些或 所有的子模塊。

編輯: 如果你想保持分支結構,我想你可以創建一個鉤子腳本(在git的/鉤/),檢查了每個特定語言的分支和合並的最新從共享提交任何時候你承諾的分支。所以你應該有一個共享分支,並且每個語言都有一個分支,並且你基本上會向共享分支提交提交,並且它們會自動合併到其他分支中。我不認爲這聽起來像是一個很好的解決方案,但還沒有嘗試過。如果你想放手一下,找一下關於鉤子的信息。我認爲子模塊更合適。

+0

這看起來很有趣,謝謝。但我想在使用分支來輕鬆更新共享代碼時沒有辦法? – vindia 2010-08-26 12:06:04

+0

@vjo:見編輯答案 – Felixyz 2010-08-26 16:36:03