我最近完成了将发布分支合并到master并使用jgitflow:release-finish
进行开发。构建成功。
但现在我正在尝试使用jgitflow:releast-start
创建一个新分支。但它给出了以下错误。
[ERROR] Failed to execute goal external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start (default-cli) on project <XXXXXXX>: Error starting release: Error starting release: a release branch [refs/remotes/origin/release/1.0.1] already exists. Finish that first! -> [Help 1]
当我运行jgitflow:release-start
并将其输入为1.0.2时,它问我以下问题。
What is the release version for "XXXXXXX"? (org.XXX.automation:XXXXXXX) [1.0.2]: 1.0.2
但它仍然给出了以下错误。我很困惑。
问题:
答案 0 :(得分:3)
1)我们应该手动删除release-1.0.1分支吗? 2)如果是,我将失去历史。有没有办法保留它?
根据gitflow,这个Maven插件背后的哲学,发布分支是临时分支,应该在之后删除:
现在我们已经完成了,并且可能会删除发布分支,因为我们不再需要它了:
$ git branch -d release-1.2 Deleted branch release-1.2 (was ff452fe).
然后合并发布准备和合并的更改,因此其更改的历史在大多数情况下是无关紧要的。
然而,作为gitflow的一种变体,可能采用不同的方法(但显然不受插件直接支持):保留一个长期生存版本分支,用于所有版本,rebase
来自{{1}分支,而不是在准备好/执行发布时创建一个新的。
另请注意,release:finish
目标提供了keepbranch
选项:
在完成发布后是否保留发布分支。
默认值为develop
,因此默认情况下它不应保留发布分支。