2012-11-09 49 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