0

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

我们从客户那里收到实施新功能的请求,这些功能应该只有我们才能提供给请求它们的客户,因为这些功能旨在定制应用程序以满足他们的特定要求。我们也可能会自行推出新的功能/修复程序,所有客户都可以使用。

哪种工作流程最适合上述场景,以确保开发过程和发布周期顺畅。

4

2 回答 2

1

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

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

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

于 2015-11-26T16:21:01.393 回答
0

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

您为特定需求推送客户分支,但是当您发布主要产品的新版本时,您会重新设置所有客户分支。

于 2015-11-26T16:02:22.727 回答