我有一个Web应用程序。该应用程序有两个代码源:
完成的应用程序是source1和source2的组合。 Source1被覆盖。
Source1是我不喜欢的代码。它作为我必须提取的zip文件发布。每隔几个月就会有一个修补程序(也包括zip)。半年后,有一个新的主要版本。主要版本不兼容,因此每半年我必须保存旧版本并重新开始。
Source2是我修改的代码,或者包括对source1的添加。 Source2是不断开发和更改的。
我想使用CI / CD来构建完成的应用程序并将其部署 在服务器上。我想要有关如何最好地构建我的一个或多个存储库的建议?
答案 0 :(得分:0)
我想你想要类似的东西
然后,source1提交始终是master / source2的父级,当您在source1分支上获得更新时,可以尝试将其git merge
放入master / source2中。它可能会起作用:如果不行,则需要重新启动,然后重命名旧的master分支(或只是创建一个标签),然后从source1中选择一个新的master分支并进行选择,或重写所有对其进行提交,将其修复为新的source2版本。
可能有更聪明的解决方案,但这为您提供了source1的历史记录以及对您在它上面所做的source2工作的明智表示。我不能说git merge
是否可以应付source1的重大变化;同事们对它的超级能力充满热情,但我本人取得的成功参差不齐,但是值得一试。在您必须从source1剪切新分支的那一刻起,这并不能为您提供所有source2版本的单个分支,但是您可以使用标签跟踪这些分支。
答案 1 :(得分:0)
有很多方法可以构造这种结构,因此有一些建议:
假设您正在使用git:
.so
此结构可让您跟踪source1版本之间的更改,并且您可以随时从src1版本重新开始,然后在其顶部进行选择。
对于CI / CD,只需在推送到src2分支时重建/重新部署。