我的项目是一个monorepo,顶级目录包含构建基础设施和一组用于不同服务的项目目录。每个服务都有自己的开发分支。分支有rc和发布标记: service1-14.0-rc1,用于第一个服务,等等。
问题是产品之间共享的构建基础设施。我不知道是否应该在主分支上进行共享工作,然后将其合并到所有的产品分支中,并且应该偶尔将这些分支合并回主分支,以及在什么时间,等等。在产品分支将永远存在的这种设置中,有什么好的git方法?是否应该将标签用于主人呢?
发布于 2022-09-03 02:23:22
在你写的评论里
“每个分支在Makefile中更改几行”
我想这是你的问题。创建一个makefile,允许单独构建每个产品/平台,例如调用"make platform1“、"make platform2”等等。对其他共享组件采取相同的方式--确保它们在平台之间没有差异,但提供编译时间或运行时机制,以适应特定的平台。
现在,您可以将所有内容合并回master中,而不必为不同的产品/平台滥用分支,这将使您的问题消失。
发布于 2022-09-02 20:23:40
你不能把所有的东西都放在一个git回购中,把它叫做"monorepo“。
如果您没有任何交叉之间的产品子目录,然后让他们分开的repos,并节省了自己的痛苦。
如果您确实有共享代码,那么您需要从主程序中释放并合并回来。这可能意味着您需要定制的合并过程来检测冲突和拒绝,这取决于您是否可以在没有测试失败的情况下构建和部署。
https://softwareengineering.stackexchange.com/questions/440798
复制相似问题