Git Flow已经存在很长时间,许多人似乎将其作为最喜欢的git工作流采用。
当在Java / Maven环境中实现Git Flow时,我想知道如何处理位于所有下方分支上的软件模块的版本控制。
在简单的Maven世界中,开发人员总是使用SNAPSHOT版本(例如:0.0.1-SNAPSHOT),某些发布过程会创建一个发布版本(0.0.1),新的快照版本可供开发人员开发(0.0.2-SNAPSHOT)。如果您只有Develop和Master分支,那么这样做就可以了,但是在GitFlow中如何处理maven版本控制呢?
主分支上的版本定义起来很容易,因为它们最终将从Release分支创建并发布。
但是一旦代码进入发布分支,我们该采用什么版本控制策略呢?
我们需要在发布分支上保留一个新版本号以避免与Develop分支发生冲突。那个版本号与Develop分支上的内容有何关系?
我想,在发布分支上也可能有多个提交,然后才能将发布推向生产环境。由于我们无法重复使用非快照版本,所以我们是否应该在每次提交时增加固定版本,或者在最终完成并推送到主分支之前,也使用发布快照版本?
当我们将更改从发布分支合并回Develop分支时,我们是否要开始一个新的快照版本?
release
和hotfix
分支,在开发进展的同时修复生产版本的错误或修复beta版上的错误会更容易。如果发布需要数周的手动测试(和错误修复),那么仅仅拥有一个主分支是很困难的。 - J Fabian Meier