2011-03-30 42 views
4

我開發了一個網站,現在已經爲幾個客戶克隆。每個客戶都需要超越視覺方面的定製,而不能通過配置文件,偏好或類似的東西來處理。如何跟蹤共享公用代碼的Git中的幾個項目?

在這種情況下,我想用通用代碼在Git中維護主存儲庫,然後爲每個客戶端分配一個分支。這樣,我可以對每個客戶(分支)進行個別更改並共享通用更改(使用主控)。

這種方法是否正確?除了遠程分支之外,還有其他方法可以解決這個問題嗎?

謝謝!

回答

3

這將工作。

您必須小心合併 - 您只能從通用代碼合併到客戶端代碼,但您可以從客戶端恢復單個更改到公共端。您還需要制定出將公共分支中的代碼引入客戶分支的政策 - 如果沒有太多的客戶分支代碼,您最好在公共分支之上重新定位客戶端更改每次你想更新代碼;隨着更多的變化,將合併公共代碼變得容易很多。

如果您採用重新定位方法,請參閱git rerere,該函數旨在幫助您經常處理重新定位。

1

如果您的存儲庫的結構使得所有的通用代碼都位於其自己的單獨目錄中,那麼可以使用git-submodules來解決這個問題。

如果它是,相反,所有客戶定製的活在自己的子目錄我認爲它可以使用子樹合併策略能夠完美地解決了這個情況。