【发布时间】:2021-01-25 16:56:43
【问题描述】:
我有一个“开发过程”问题,希望能得到一些经验和意见。
我正在与具有典型 dev、staging 和 production 环境的公司合作。有十几个不同的 git 存储库和一个与 CI/CD 的每个环境相关的分支。
每天有大约 15 名开发人员在跨分支机构处理任务。
dev env 用于 QA,staging 是随时可部署的生产环境。这都是正常的业务,环境没有问题。
这里是棘手的地方,将代码与 git 从一个环境合并到另一个环境的方向和过程:
dev 永远不会直接合并到staging。当前的过程是使用cherry-pick从dev->staging获取代码,这样dev环境中QA步骤中的其他开发人员就没有任何东西被合并到staging中不是。
这是一个非常混乱/危险的过程,IMO,因为如果您 [开发人员] 将您的提交从 dev 挑选到 staging 中,那么您可能会错过提交,您可以想象由此带来的头痛!
我们可以在环境建模中采用更好的流程吗?
【问题讨论】:
-
一些额外的上下文会有所帮助:从登台到生产分支的流程是什么? dev 分支是如何填充的 - dev 是从生产分支定期重新创建的一次性分支,还是稍后将生产合并回 dev 中?特性分支是否与 PR 合并到 dev 中?是否可以将这些相同的分支合并到 staging 中,而不是挑选每个提交?
-
这是基于意见的,所以你会得到很多不同的答案,但对我来说,我更喜欢这里描述的 github-flow 版本:scottchacon.com/2011/08/31/github-flow.html。如果你今天搜索 github-flow,你会在这里找到一个很好的交互式版本:guides.github.com/introduction/flow 但它们基本上是一样的。该博客文章对每个步骤都进行了更多描述,并解释了有关 git-flow 的一些好处/抱怨。
标签: git continuous-integration continuous-deployment agile