10

我有一种情况适合使用哪种 git 策略?

情况 :

我们有一个具有 git 存储库的应用程序。在其中我们遵循分支策略,

  1. 分支:开发:所有开发人员都使用它来实现功能

  2. 分支:测试:部署到当前开发的代码以测试应用程序。

  3. 分支:生产:在测试团队批准后,我们​​将测试分支合并到生产并将其部署到生产环境。

问题 :

  1. 现在我们有 3 个不同的产品安装(site1.mainDomain.com、site2.mainDomain.com、site3.mainDomain.com),这 3 个安装现在有不同的标题(徽标、标题颜色)。

  2. site1.mainDomain.com 可能有一些功能可以在未来开发并且只能用于 site1.mainDomain.com。

  3. site1.mainDomain.com、site2.mainDomain.com 的某些未来功能可能是通用的,但 site3.mainDomain.com 则不通用。

  4. 现在,如果 site1.mainDomain.com 的生产有任何问题,这是基础分支的主要问题,我们将如何管理这件事。

那么为了实现这一点,哪个 git 策略有用?我正在阅读有关子模块、git 子树、git 补丁的信息。但做出决定时有点困惑。请提出最佳解决方案和可遵循的策略。

提前致谢。维杰

4

2 回答 2

9

我认为您正在寻找解决此问题的错误位置(版本控制系统)。在这种情况下,我通常会为不同的上下文创建不同的设置文件,将所有设置文件保存在同一个 git 分支中,并且每个部署只有一个小的本地配置文件(主要是选择正确的上下文)。然后您的代码可以根据上下文检查要显示的内容类型。

我强烈建议不要为每个站点创建不同的功能分支,因为这会让你陷入混乱,并且持续不断的合并冲突解决得非常快。

于 2012-11-23T09:22:32.173 回答
4

我强烈建议不要使用 git 来解决问题。我可以从经验中看出,因为我正在从事的项目陷入了无缘无故需要维护两个 git 分支的陷阱。Github Firewall Install(Github:FI,Github Enterprise 的前身)也有同样的问题。

我建议看看功能标志(功能切换)模式来解决您的问题 - http://martinfowler.com/bliki/FeatureToggle.html

于 2012-11-24T09:36:58.540 回答