2013-04-11 82 views
1

我有一個CMS框架,我用於多個項目,由我編碼。當我執行我的項目時,CMS得到了改進,我經常希望在後續項目中使用這些更改。 但是,我經常在旅途中有多個項目。這個git設置是否正確?

在讀完git之後,我知道我可以分解每個項目並將CMS改進提交給主服務器,然後重新分配給其他分支,但這似乎是錯誤的。特別是在一些項目完成的幾年時間裏,但核心CMS與他們使用它時的情況截然不同。這也意味着在項目之間切換時在分支之間切換。當我在該機器上創建回購時,每臺機器上都會使用它的每個分支的副本嗎?

其他選項似乎是克隆。我有一個包含'核心'CMS的主要回購協議,每個項目都成爲這個的一個副本,並分別進行工作。這看起來更直觀,但我可以將克隆中的一些更改合併到核心,並且可以將核心更改分發給其他克隆嗎?

編輯: 更多地思考它,克隆是我認爲將複製品複製到機器上的術語(其中我使用了幾個,我希望能夠跟上某些項目的最新版本)。所以也許我應該'分叉'?那只是一個github的東西?

這兩個選項看起來都是正確的方法嗎?所有建議讚賞

回答

0

其他選項似乎是克隆。我有一個主要的回購包含 '核心'CMS,每個項目成爲這個克隆,並分別在 工作。這看起來更直觀,但是我可以將克隆中的一些更改合併到核心,並且可以將核心更改分發給其他克隆嗎? ?

對於任何遇到此問題的人來說 - 克隆是去這裏的路。 它允許您將所有站點作爲您計算機上的單獨文件夾,因此您可以輕鬆切換而無需檢出分支等。 然後,您可以將每個克隆的更改推送到生產服務器和/或返回到核心存儲庫(起源)。然後從原點開始,您可以將更改推送到您喜歡的其他任何實例上。 巧妙使用.gitignore,--assume-unchanged並調整每個項目以擁有一個「主題」文件夾,這意味着您可以推動所有更改,而無需過多擔心一個網站的個性覆蓋另一個。

0

我實際上面臨類似的問題。所以我做的是創建2個存儲庫。一個應用程序的核心是每個實例都必須具備才能工作。

最重要的是每個實例的特定文件和配置的存儲庫。

core-repo標有版本號,核心主設備上的每個標籤都是工作版本。

允許檢出一個特定的標籤,並將個別數據保存在實例倉庫中。你不能用這個設置做什麼是在實例倉庫中的特定代碼,併合併到其他實例中。如果你只需要一個實例repo,並在那裏分支每個實例,或者你可以使用lile composer(www.getcomposer.org)來保持你的依賴關係,你可以做到這一點。

+0

謝謝,它是一個有趣的想法,但我找到了一種適合我的方式。 – fiscme 2013-04-17 13:04:29