我有一种情况,哪种git策略适合使用?
情况:
我们有一个应用程序,它有一个git存储库。其中我们遵循分支策略,
-
分支:开发:所有开发人员用于实现功能
-
分支:测试:部署到当前为止开发的代码来测试应用程序。
-
分支机构:生产:在测试团队批准后,我们将测试分支机构合并到生产&将其部署到生产环境中。
问题:
-
现在我们有3个不同的生产安装(site1.mainDomain.com、site2.mainDomain.com和site3.mainDomain.com),目前,这3个安装有不同的标题(徽标、标题颜色)。
-
site1.mainDomain.com可能有一些功能可以在未来开发;只能用于site1.mainDomain.com.
-
网站1.mainDomain.com、网站2.mainDomain.com的一些未来功能可能很常见,但网站3.mainDomain.com则不然。
-
现在,如果网站1.mainDomain.com&这是基础分支的主要问题,我们将如何管理这件事。
那么,要实现这一点,哪种git策略是有用的?我在读关于子模块、git子树、git补丁的文章。。但做出这个决定有点困惑。请提出最佳解决方案和策略。
提前谢谢。Vijay
我认为你在错误的地方(版本控制系统)来解决这个问题。在这种情况下,我通常会为不同的上下文创建不同的设置文件,将所有设置文件保存在同一个git分支中,并为每个部署都有一个小的本地配置文件(主要是选择正确的上下文)。然后,您的代码可以根据上下文检查要显示什么类型的内容。
我强烈建议不要为每个网站创建不同的功能分支,因为这会让你陷入混乱,并且不断地快速解决合并冲突。
我强烈建议不要使用git来解决这个问题。我可以从经验中看出,因为我正在进行的项目陷入了无正当理由需要维护两个git分支的陷阱。Github Firewall Install(Github:FI,是Github Enterprise的前身)也出现了同样的问题。
我建议看看Feature Flag(Feature Toggle)模式来解决您的问题-http://martinfowler.com/bliki/FeatureToggle.html