2013-08-22 16 views
0

我希望這是要問的地方;如果沒有,我會打我。如何將git用於子網站?

我們有一個網站,目前與git維護。我們正計劃轉售該網站,將代碼等保存在我們的服務器上,並對其進行重新標記並對客戶進行一些修改。這不是一個簡單的「展示不同的CSS」,每個客戶都會根據我們的核心代碼進行實際的代碼和邏輯修改。

如何最好的在git中管理這個?我查看了遙控器,子模塊,維護不同的存儲庫,但似乎沒有人點擊。我的計劃是,我們有我們的核心代碼庫,每個客戶(包括我們自己的網站)都有自己的repo(或者子模塊,或者不是)。我們可以修改它們的特定代碼,如果我們需要將某些內容推送到中央代碼,那麼也應該很容易將它推送到客戶站點。

我想我這裏的問題是表達我想要的;如果我能做到這一點,那麼git可能會回答「這是你需要的。」

任何想法?

+0

您可以爲他們的網站/品牌特定的代碼建立單獨的回購站,並將您的核心代碼作爲子模塊部署嗎? – kelorek

回答

1

我不知道爲什麼一個簡單的分支不會在你的情況下工作。如果你有訪問控制問題,你可以隨時將這些分支推送到不同的存儲庫(可選地在不同的機器上),但根據你描述的內容,我在子模塊或任何想象中看不到任何一點。

然後,您可以將您的「核心代碼」分支合併到每個客戶的分支中,當它達到里程碑時。

+0

分支是你想要的 –

0

在Git中沒有什麼特別的關於master分支,除了它是你開始的地方。大多數人使用master作爲他們所有分支機構的「主幹」,我希望您可以使用您的核心代碼庫。

處理您的情況最簡單的方法是客戶特定的master分支(例如foo-company/master,bar-company/master)。您不必爲每個公司使用分支「文件夾」,但它可能有助於將任何公司特定的內容與核心開發人員分開。您可以可能選擇使用單獨的遙控器,但我不認爲額外的複雜性會帶給你任何東西,除非客戶只需要訪問他們的代碼版本

由於工作是做master和客戶需要的新功能,你有幾種選擇:

  1. 合併master到您company/master分支機構定期,當他們出現解決衝突。取決於與master的偏差範圍,這可能具有挑戰性。 git rerere可能會有所幫助。
  2. 如果您始終按照「自master以來的更改」的方式來考慮每位客戶的定製,則可以考慮使用rebase來保持最新狀態。如果更改通常是完整的,這可能會使解決衝突更容易。或者如果連續的修改修改了先前的修改,最終可能會一遍又一遍地發生同樣的衝突。
  3. 如果客戶只需要master中的特定新功能,則可以使用cherry-pick將特定功能提交提交到公司分支。
相關問題