什么是Git工作流-单一产品,多个客户端



我在一家产品开发公司工作。我们有一个CMS应用程序,它是在MEAN堆栈上开发的,我们使用Jenkins CI进行自动化部署。我们使用github来托管我们的代码。

我们从客户那里收到了实现新功能的请求,这些功能应该只对提出请求的客户可用,因为这些功能是为了定制应用程序以满足他们的特定要求。我们还可能自行推出新功能/修复程序,所有客户都可以使用。

什么样的工作流程最适合上述场景,以确保开发过程和发布周期是顺利的。

以Github为中心的方法是为每个客户端创建一个私有存储库,该存储库是主存储库的分支。客户端存储库将有两个分支:master,它跟踪原始存储库中的主要开发分支;project,它显示您为它们开发的代码。

在本地,您将有一个克隆的存储库和许多远程设备,每个客户端存储库一个。您将在本地为客户端1处理project1分支,并将这些更改推送到与该客户端关联的远程。您将有一个客户端2的project2分支,并推送到该客户端的远程。等等。

当您对主开发分支进行更改时,您会将其推送到主存储库和所有客户端存储库master分支。这些更改可以是客户端的项目分支的cherry-pick ed,或者项目分支可以是新更新的master分支之上的rebase d。

我认为您应该为一个客户拥有一个分支,以及一个包含所有核心功能的主分支。

您为特定的需求推动了一个客户分支,但当您发布主产品的新版本时,您会重新调整所有客户分支的基础。

最新更新