gitflow 适合我们的需求,而 giversion 似乎也适合 gitflow。但有一件事我并不完全理解。让我解释一下困扰我的事情。
- 我们确实在开发分支上开发了一些功能——所有的包都被标记为 1.3.0-unstable.1、1.3.0-unstable.2 等等。
- 每个包都通过管道 - dev、test、uat、prod。
- 所以当开发准备好并且一切都很好时,根据 gitflow 我们启动发布分支。
- 发布时不需要做任何更改,我们马上就完成了——发布分支合并到主分支和开发分支中。
- 构建服务器再创建一个包 1.3.0,这是一种产品准备就绪。
这里如何实现一次构建,多次部署?根据所有规则,我们需要将 1.3.0-unstable.x 升级到 prod 环境,因为这个包在 dev 和 test 中测试过,但是对于 prod 来说,版本看起来有点奇怪,不是吗?当来自 master 分支的 1.3.0 从未在任何地方部署时。
问题与此类似:在 git flow 模型中,我应该从 master 中的合并提交构建到发布吗?
答案并不令人满意:
- 我们在合并到 master 时执行 -no-ff
- 它仍然是一个不同的包