Git 如何保持子站点的更新?
所以我有一个用Coldfusion编码的网站,它基本上是一个专门的CRM。我把这个卖给客户。假设我把它卖给10个客户……我会把最新的代码推广给所有客户。随着时间的推移,这些客户中的任何一个都可能要求对其站点进行特定的更改 我经常对我的主代码进行更改/错误修复/新功能等。用所有子站点仍然包含的共享代码更新其他10个站点的最佳方法是什么 现在,我只是使用Araxis Merge将我的主代码与他们的站点进行比较,并复制相关的更改,等等 我只是在想,如果这扩展到我想要的水平,那么继续更新将是一场噩梦 我在本地开发环境的所有站点上都使用git来跟踪更改,但我认为版本控制在这种情况下没有帮助Git 如何保持子站点的更新?,git,Git,所以我有一个用Coldfusion编码的网站,它基本上是一个专门的CRM。我把这个卖给客户。假设我把它卖给10个客户……我会把最新的代码推广给所有客户。随着时间的推移,这些客户中的任何一个都可能要求对其站点进行特定的更改 我经常对我的主代码进行更改/错误修复/新功能等。用所有子站点仍然包含的共享代码更新其他10个站点的最佳方法是什么 现在,我只是使用Araxis Merge将我的主代码与他们的站点进行比较,并复制相关的更改,等等 我只是在想,如果这扩展到我想要的水平,那么继续更新将是一场噩梦 我
谢谢你的建议。从你的问题来看,他们的代码听起来很相似,但站点A包含特定功能的代码,但站点B没有该代码。我建议让所有子站点共享完全相同的代码库 根据这些子站点的设置方式以及每个子站点的自定义级别,这可能是一项简单的任务,也可能不是一项简单的任务。很可能您需要进行大量重构才能使其正常工作 从长远来看,这将使您的生活更加轻松,因为您可以使用基于单个repo的连续部署解决方案一起部署所有子站点 您可能已经在做一些这方面的工作,但以下是我将如何设置它:
- 每个子站点使用相同的数据库(或相同数据库的集合)。数据库必须设置为多租户,因此每个表都有一个“子站点ID”列
- 然后,您的代码将根据唯一的子站点ID有条件地显示/隐藏这些客户端的某些自定义功能。如果每个站点都有自己的
,您可以在其中设置站点ID。您可能会在整个代码中使用大量的Application.cfc
- 一旦每个站点都在完全相同的代码库上运行,就可以设置连续部署
基本上,如果你走这条路,你所做的就是创建一个有一个真相来源的平台。如果您需要对单个站点或所有站点进行更改,您可以编辑一个repo,从中部署所有站点。我会将共享代码提取到它自己的git存储库中,并将其作为子模块添加到每个客户端
,我认为版本控制在这种情况下没有帮助。。。但我想是的。例如,您可以在master
分支中修复所有核心错误,然后将其合并到其他分支中。@tim我不是git的天才……因此在这种情况下,所有姐妹站点都将是master的分支,所以所有内容都在一个repo中?谢谢,非常深入。我想我喜欢一个回购协议的想法,所有站点都是从master的分支机构部署的。只是不确定我能不能设置它…还在学习git。