6

我最近完成了将发布分支合并到 master 和 development 使用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

但它仍然给出以下错误。我很困惑。

问题

  • 我们应该手动删除 release-1.0.1 分支吗?
  • 如果是,我将失去历史。有什么办法可以保存吗?
4

1 回答 1

3

1)我们应该手动删除release-1.0.1分支吗?2)如果是,我将失去历史。有什么办法可以保存吗?

根据gitflow,这个 Maven 插件背后的哲学,发布分支是临时分支,应该在之后删除:

现在我们真的完成了,发布分支可能会被删除,因为我们不再需要它了:

$ git branch -d release-1.2
Deleted branch release-1.2 (was ff452fe).

然后合并发布准备和编译的更改,因此其更改的历史在大多数情况下是不相关的。

但是,作为 gitflow 的一种变体,可以使用另一种方法(但显然插件不直接支持):保留一个长期存在的发布分支,用于所有发布,并且rebase它来自develop分支,而不是在准备好时创建一个新分支/执行释放。


另请注意,release:finish目标提供了一个keepbranch选项:

发布完成后是否保留发布分支。

默认值为false,因此默认情况下它不应保留发布分支。

于 2016-06-17T14:28:56.710 回答