Git仓库为不同的产品,其中一个可能要原

问题描述:

这里正在发生的变化是我的问题 -Git仓库为不同的产品,其中一个可能要原

我们正在研究一个项目,该项目基本上是一个REST API,拥有一整套的DTO的, DAO和资源,这些将用于使产品发挥作用。

但是,我们希望将REST api,auth,jwt解析等全部放在一个我们可以复制的产品和未来产品的仓库中 - 我们还会为其他产品只想快速查看某些内容的开发人员。

现在,我们的问题在于,如果我们构建REST api,然后将其分配给主项目,那么我们希望在基本REST API中更改的任何内容都不一定会进入产品...

我们如何做到这一点,以便我们可以轻松地从基本REST API回购中进行更改,而不会混淆一大堆呢?

基本上,我们想要的是让产品API拥有一个可以指向DTO,DAO等的pom,然后能够跟踪来自基础的更改Rest api,我们将其构建为单独的社区驱动实体。

谢谢。

您可以添加一个单独的回购作为子模块或子树。 Google围绕这些方法。两者都不完全干净,但应该做你想做的。另一种选择是使用包。请参阅下面的更多信息

另一种选择可能是现在在您的仓库中创建基础API,直到它变稳定,然后将其转换为其他方法之一。如果你这样做,包选项可能更可行。您可以将基础API构建为单独的项目/ DLL /等。所以它与代码的其余部分保持分离,并且将来很容易发生。


子模块

子模块基本上都是建立在回购协议的文件夹,它引用另一个单独的回购协议的方式。因此,您可以为基础API开源回购,并将其作为主回购库中的子模块。如果你需要在子模块本身进行更新,这确实会变得有些混乱 - 团队中的每个人都需要遵循一些事情来保持它的清洁(一些Google搜索会提出这些问题)。

子树

我还没有真正处理子树,只是读了一些关于他们,但类似的想法,只是从子模块管理它,它不同(这个方法没有任何直接的Git支持,如果我理解正确,但有一些优点)。

另一种选择,如果你有基本的API固体版本的发布,将是从它创建的软件包,使用的NuGet等,并安装它像在主回购任何其他程序包。