Git - 将主分支合并回开发分支?

6

我加入了一个新团队,他们的工作方式与我之前习惯的完全不同。以前我们会在一个特性分支上工作,测试人员会在该特性分支上进行测试,然后我们会运行Jenkins作业将该特性合并到develop分支中,待测试通过后会把该分支再次基于develop分支进行变基操作,以使其保持最新。

然后从develop分支中创建一个发行版本,随后发布这个版本并合并到主分支(master)。对于任何人来说,这似乎是一个非常易于理解的工作流程,尤其对于我这样没有经验的Git项目来说。

现在,我在另一个团队中,但没有人真正知道为什么要采用他们当前的工作方式,是否有充分的理由在将develop分支合并到master分支后再将master分支合并回develop分支?

他们的工作流程是这样的:我创建一个功能分支,本地处理该分支,当我对该功能满意后,我会创建一个合并请求(Merge Request)用于合并到develop分支中。然后我会从develop分支中部署我的更改,并进行测试。一旦测试通过,我就会在GitLab上为develop分支上的提交创建一个cherry pick合并到master分支中。当提交成功被合并到master分支后,我将从master分支中发布该更改。

然而,总会有人将master分支再次合并到develop分支中。我向团队的几个成员(这是一个只有5名开发人员的非常小的团队)询问过,但没有人真正知道为什么,他们只是这样做。

之前的项目中,有100多个开发人员在不同的小型开发团队中工作,因此限制要严格得多。

这种工作方式是GitLab特定的吗?


1
如果你和你的伙伴们不知道为什么要这样做...我们为什么要知道呢?也许他们这样做是为了使开发分支与主分支处于相同状态...如果以后想要有第二个开发分支。但我认为这不是GitLab的方式...我们使用GitLab,不会这样做。 - YesThatIsMyName
1
我是团队的新成员,我想这可能是GitLab用户或Git一般都知道的常见问题,而我不知道。我不明白为什么develop分支不会处于“类似”的状态,因为提交是从develop到master的。根据您的回答,也许这个问题太宽泛\开放,应该被删除。我用“类似”这个词是因为develop永远不会和master完全相同,因为正如我所说,变更一直在进入develop分支。 - berimbolo
1个回答

7

一旦将 develop 分支合并到 master 分支,两个分支已经同步,因此不需要再将 master 分支合并到 develop 分支。唯一需要将 master 分支与 develop 分支合并的情况是在 master 分支进行热修复时。


1
热修补程序非常有意义。 - berimbolo
2
我认为如果你在主分支上压缩提交,那么在某些情况下,由于此操作引起的冲突,你也需要将其合并回开发分支。 - Marian Klühspies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接