2012-11-09 78 views
2

在我的辦公室,我們有一個本土化的內容管理系統。慢慢但穩定地,我們已經建立了我們CMS的60個實例。是的,我們是一家大公司;一個非政府組織。在不與主人合併的情況下維護GIT中的分支機構

我們大部分的辦公室都使用當前形式的CMS。一些辦公室定製顏色,字體,基本上是皮膚。有些人建立了新的功能,有時我們將其帶入核心。我一直負責更有效地管理源代碼。

可以說 - 我在管理「核心」,我有辦公室「A」和辦公室「B」。辦公室A僅定製他們的顏色,但辦公室B對核心進行了一些更改(不是很多),他們的代碼因核心而異。我只想對「核心」負責。當我開發一項新功能時,我想(在接受時)將這些更改與其他辦公室同步。

我想創建永遠不會與主人合併的分支。但是我對師父所做的改變不能去分支機構?我應該採取什麼方法,我應該注意什麼?

回答

1

這是一種可能的方法。

對於想要申請大師的辦公室分支機構的提交,只需在主人面前挑選他們即可。如果你知道你在做什麼,你也可以在主控制器上重新進行一系列的提交。

換句話說,合併確實是合適的;你會想把主人合併到辦公室,但不是相反。您可以查看您想要應用核心更改的辦公室分支,然後選擇git merge master。這將嘗試合併,但只會觸及辦公室的分支;主分支將不會移動。

您可能還想考慮提供一個默認的顏色列表,並允許創建一個新文件來覆蓋這些顏色。您可以在.gitignore中列出覆蓋文件名,以便這些更改永遠不會提交給Git存儲庫。您可以更新主設備中的默認設置並將其合併到辦公室分支中,但除了已部署的副本之外,您絕不會看到辦公室顏色覆蓋。

+0

謝謝!這在我腦海中回答了一個基本的疑問 - 師父可以與分支合併。我假設只有分支可以與師父合併。考慮到即使是一個主人也是一個分支,這是有道理的。我如何設置分支以避免與主合併?可能嗎? – Hari

+0

你無法真正以任何有意義的方式執行。 Git不區分哪些提交來自哪個分支;一個分支只是一個提交的指針。如果兩個分支指向相同的提交,則不能分辨哪個分支始發於哪個祖先。只要在主人簽出時不要「混合」,你就會好起來的。 (如果你不想讓其他人能夠將更改推送給master,那麼你可以做一些ACL類型的東西,但這有點超出了這個問題的範圍。) – cdhowie

+0

Btw。 'master'只是一個被認爲是默認分支名稱的隨機名稱。你可以重新命名,刪除它或做任何你想要的東西。沒有更多的意義了。 – poke

相關問題