1

我们为客户端创建了一个 webapp,将它部署到它自己的服务器上,现在它已经上线了。我们的业务人员刚刚安排了一笔交易,我们可以使用相同的应用程序,但它必须在不同的服务器上,并且必须重新命名外观和感觉。因此,应用程序之间的唯一区别是 CSS 和数据库。我负责维护这两个装置。

目前,我将 Git 存储库中的代码部署到运行 Ubuntu 服务器的 Linode。我怎样才能设置站点的第二个副本,并且仍然尽可能保持一切干燥?

我宁愿不必对 90% 的共享代码进行错误修复,然后记住我所做的并将更改复制到第二个 repo。

4

3 回答 3

2

您可以在 git 中为其中一个站点创建一个分支。

或者您可以只考虑必须不同的东西,以便站点共享相同的代码库,然后单独管理每个站点的“配置”(例如在其自己的 git 存储库中)。

于 2012-02-15T21:54:19.103 回答
1

这是 Linux 发行版或 Android 供应商必须处理的常见用例。

我认为您在“改进”版本中有一些提交来自定义这个(一个用于 css、图像和 i18n,另一个用于配置)。

您的“干净”代码库应该是“改造”的基础。

当您分叉一个项目并想要集成上游修改时,就会发生这种情况。

为了实现这一点,你的 clean 项目是一个适当的 git repo,另一个是另一个通过遥控器引用 clean 的项目。

当对干净项目应用更改时,只需获取并重新设置另一个项目。这会将自定义提交应用到最新的上游版本。

请注意,您仍然可以解决冲突,并且您必须测试结果。这不是魔法,但它会在 95% 的时间内起作用。

于 2012-02-16T10:47:06.757 回答
1

使用脚本转换您的配置文件。在源代码管理中保留一个不适用于任何平台的配置文件。你想快速失败。

于 2012-02-15T22:48:27.770 回答