这是我的情况。
我有一个项目一直部署在一台服务器上。我们的情况发生了变化,现在该项目部署在国际上的几台服务器上。到目前为止,我们仍然只有一个分支机构。该项目现在包含通用代码,但也包含特定国家/地区的代码。
我想改变它,但我不知道如何改变。我有两种可能性。第一个是从我的国家/地区创建一个分支机构。但在此之前,我必须做一些清理工作来隔离通用代码并为每个国家保留特定代码。这种解决方案的缺点是人们很快就会在许多分支机构之间丢失。
第二个解决方案是保留一个分支,但我必须更新代码以创建通用控制器,这些控制器将根据国家/地区重定向到特定控制器。
如果您认为有其他解决方案可以解决此问题,我感兴趣。
答案 0 :(得分:2)
请记住,git是一个源代码控制工具,而像分支这样的结构旨在解决源代码控制问题。很久以前有人发现,由于git有一个用于将更改传输到远程仓库的协议,因此它可以用作部署工具;在非常简单的情况下,它可以很好地完成这项工作。但是人们常常开始这样做,然后随着他们的构建/部署要求变得更加复杂,他们希望git可以随之扩展。如果它是构建和部署工具,它可能会。但事实并非如此。
“每个国家的分支”的缺点不仅仅是人们可能在分支机构中迷失方向。更大的缺点是在所有分支中保持公共代码同步将是乏味的,并且最终可能不会可靠地发生。
您的其他解决方案可能更好,但它将国家/地区识别为动态运行时决策,实际上可以在部署时决定(因为显然某个已部署的实例始终位于country-1,或者总是在国家2,或......)。
为什么不使用可支持多种配置的构建和部署工具,以便您可以使用单个代码库并让工具为任何给定的服务器构建正确的站点版本?