从分支创建新应用程序的含义差异太大

时间:2018-09-28 20:14:37

标签: git

我努力以不太主观的方式提出问题。任何版本都非常欢迎。

我们有一个存储库,可以在合并到母版之前在不同分支中测试新功能。碰巧该主机当前被多个客户端使用。在向新客户的演示中,销售代表提供了一项功能,该功能仍处于beta测试中,对于达成合同至关重要。

我们的解决方案是将该分支部署到另一个域,以便他们使用它。他们喜欢它,但是没有其他客户想要使用它。这是一项核心功能,因此我们无法仅在master上合并并根据请求启用或禁用它。

时间过去了,这个新分支收到了越来越多的更新和功能,直到现在它是一个与master几乎不相关的不同应用程序(确保它们共享90%的核心,但是现在它们服务于不同的目的)

这不是技术问题,项目拆分已在Creating a new project out of a branch上进行了讨论和解决,并且对我们很清楚。

我们想知道的是,您是否遇到过这种情况以及如何解决?您是按原样保留分支还是将回购一分为二?

tl; dr

我们目前处于分裂状态。拆分存储库并保持原样是有意义的。如果我们拆分,也许我们被迫更新两次相同的某些特征,但是如果它们在相同的仓库中仍然会发生。另一方面,拥有两个HEADS(两个存储库)将使随着时间的流逝和提交开始积累,调试/部署更加清晰明了。

我制作了一个图表来说明我们的观点,希望对您有所帮助: diagram

1 个答案:

答案 0 :(得分:0)

一旦您的代码库(这里是分支)发展到需要其自己的生命周期(自己的标签,分支,发布周期)的点,就需要将其隔离在自己的存储库中。

这将使标记和分支变得更加简单:您不必根据(现在)两种不同的产品来管理两组不同的标记/分支。

理想情况下,如果要在两者之间保持紧密联系,并且仅对功能进行改进,则第二个存储库可以引用第一个存储库as a submodule