这个标题可能有点误导,因为我不知道该怎么命名它。
我们已经创建了一个基于we的系统,并将其出售给我们的客户。所有的主机都是我们做的。如果我们有一个新的客户购买了系统,我们从一个不同的客户那里复制一个并更改徽标,等等。
现在,如果我们做了更改,假设我们发现了一个bug并修复了它,我们必须检查所有系统并更改有bug的文件。这是我想要改变的东西。
基本上,我正在寻找的是一种简单的方法来保持这一点有条理,并易于推向生产。但也想要灵活性,如果客户想要一个特定的功能,我们能够很容易地改变它,而不是用这个功能更新每个系统。
因此,每当我们对系统的核心进行更改时,我都会以某种方式将固定文件推送到所有其他系统,而不是手动完成,这是一种麻烦和愚蠢的方式。
现在我认为这可以用git,通过某种分支构造合并成一个主分支,但我对此不太确定,也找不到任何关于它的东西。
有人知道这叫什么吗,或者有没有办法做到这一点?
发布于 2013-08-10 14:28:54
这应该可以用于任何版本控制系统,而不仅仅是Git。
假设您的核心系统位于主分支中。为每个客户创建一个新分支。
如果您发现核心系统中存在bug,请在master中进行修复,并将master合并到所有客户分支中。
同时,您可以在客户分支中进行独特的更改。但是,例如,如果您更改了客户分支中的index.php,然后在master中修复了该文件中的错误,那么当您将master合并到客户分支中时,可能会出现冲突,您必须手动解决这些冲突。
而且,由于每个客户分支都是特定于您的客户的,并且具有独特的自定义更改,因此您不需要从客户分支合并到主分支。您将始终从主分支行进到客户分支,而不是相反的方向。
如果您只在核心系统中进行了较小的更改和错误修复,则此设置应该可以很好地工作,偶尔会出现较小的冲突。但是,如果您对核心系统进行大量更改,您可能会遇到太多冲突,这将使设置难以维护。这完全取决于客户分支和主分支中的独特更改的重叠。如果有很少的重叠或没有重叠,那么即使是广泛的更改也很容易合并。
发布于 2013-08-10 17:23:46
你可以查看post commit hooks -你可以有一个列表(可能是python字典),列出哪些分支机构在哪些客户区域,并且只要有提交,如果它是特定于一个客户,你可以拉取和更新他们的目录,但如果它在主干中,你可以在所有客户目录中自动拉取和更新。
git书中关于钩子的章节是here,并且有几个例子。
https://stackoverflow.com/questions/18155417
复制相似问题