【发布时间】:2022-01-27 20:29:02
【问题描述】:
最近我在 GIT 中发现了工作流的三个概念:GitFlow、GitHub Flow 和 GitLab Flow。我已经阅读了the nice articles 的相关内容,但我不太了解 GitLab Flow。也许是因为我不是母语人士:)
简单地说。
GitFlow
我们有一个主分支作为生产分支。此外,我们还有一个开发分支,每个开发人员都可以在其中合并他的功能。有时我们会创建一个发布分支来在生产中部署我们的功能。如果我们在发布分支中有错误,请修复它并将更改拉入开发分支。如果我们在生产中遇到严重错误,请创建新的修补程序分支,修复错误并将分支与生产(主)合并并开发分支。
如果我们很少发布我们的工作结果,这种方法很有效。 (可能每 2 周一次)。
GitHub 流
我们有一个主分支作为生产分支。我们(作为开发人员)可以创建用于添加新功能或修复错误的分支,并将它们与生产(主)分支合并。听起来很简单。这种方法适合在一天内多次部署生产分支的极端编程。
GitLab 流程
我见过一些新术语,例如预生产、生产、发布(稳定)分支和暂存环境、预生产环境、生产环境。他们之间有什么关系?
我是这样理解的:如果我们需要添加新功能,我们会从主分支部署一个预生产分支。完成该功能后,我们从预生产分支部署一个生产分支。预生产分支是中间阶段。然后主分支从生产分支中拉取所有更改。
如果我们想查看每个单独的功能,这种方法很好;我们只需在分支中签出我们需要查看的内容。
但是如果我们需要展示我们的工作,我们会尽可能晚地创建一个带有标签的发布分支。如果稍后我们修复主分支中的错误,我们需要将它们挑选到最后一个发布分支。最后,我们有带有标签的发布分支,可以帮助我们在版本之间移动。
我的理解正确吗?
pull 和 cherry-pick 有什么区别?
【问题讨论】:
-
有一个很好的“GitLab Flow in practice”文档:github.com/jadsonjs/gitlab-flow
标签: git github version-control gitlab