【发布时间】:2017-09-28 03:08:02
【问题描述】:
我在 Git 中有以下场景: 2家分店
- 开发
- 主人
所有开发都在develop 上完成。在develop 上,当我们要创建快照时,我们将创建一个新的snapshot 分支。在这个snapshot 分支上,当我们想要发布它时,我们将创建一个release 分支。
在release 之后,我们将发布分支与其snapshot 分支合并回来,并将release 分支与master 合并。
在发布期间,我们在 pom.xml 中使用 mvn:set 更改版本。
除最后一步外,此过程工作正常。我有时会与 release 和 master 之间的合并发生冲突。
例如:我创建了一个版本并与 master = ok 合并。然后我在我的快照分支上做一个修补程序(添加一些文件)并再次发布。新版本将再次与快照合并,但与我的主人合并有冲突,但仅限于pom.xml:
Branch master set up to track remote branch master from origin.
Auto-merging xxx/pom.xml
CONFLICT (content): Merge conflict in xxx/pom.xml
pom.xml 里面的版本当然不一样(master 的版本需要替换为release 分支的版本)。但是,release 和 snapshot 分支之间的合并也是如此,它始终在工作。
此合并的代码非常基本。它与release 分支和support 分支之间的合并代码几乎相同。它总是有效的。
echo "merge Release branch with master branch";
git checkout master;
git merge REL-1.0.0;
git push origin master;
我在这里错过了什么?
这是合并失败后我的 pom.xml 的内容,其中 1.0.1 需要替换为 1.1.0
<<<<<<< HEAD
<version>REL-1.0.1</version>
=======
<version>REL-1.1.0</version>
>>>>>>> REL-1.1.0
【问题讨论】:
-
为什么要在master中合并release分支?我的做法是,如果发布分支中引入了任何回归,我会从 master 中挑选提交并将其放在发布分支上。发布分支是从最新的 master 创建的。