我在一家产品开发公司工作。我们有一个在MEAN堆栈上开发的CMS应用程序,我们使用Jenkins CI进行自动部署。我们使用github来托管我们的代码。
我们收到了客户实施新功能的请求,这些功能应仅供我们请求客户使用,因为这些功能旨在定制应用程序以满足其特定要求。我们还可以自行推出新功能/修复程序,供所有客户使用。
哪种工作流程最适合上述方案,以确保开发过程和发布周期顺利。
答案 0 :(得分:1)
以Github为中心的方法是为每个客户端创建一个私有存储库,它是主存储库的一个分支。客户端存储库将有两个分支:master
跟踪原始存储库中的主要开发分支,project
显示您正在为它们开发的代码。
在本地,您将拥有一个具有许多远程控制器的克隆存储库,每个客户端存储库一个。您将在本地为客户端1的project1
分支工作,并将这些更改推送到与该客户端关联的远程。您将拥有客户端2的project2
分支并推送到该客户端的远程。等等。
当您对主开发分支进行更改时,您可以将其推送到主存储库和所有客户端存储库master
分支。然后,这些更改可以cherry-pick
到客户端的项目分支,或者项目分支可以rebase
在新更新的master
分支之上。
答案 1 :(得分:0)
我认为你应该为客户提供一个分支,以及包含所有核心功能的主分支。
您推动客户分支机构满足特定要求,但是当您发布主要产品的新版本时,您可以重新命名所有客户分支机构。