在Azure DevOps Server 2019上,如何在不应用其策​​略的情况下将master分支合并到developer分支中?

时间:2019-06-25 21:11:53

标签: git azure-devops azure-devops-server-2019

在NuGet库上,我使用develop分支作为连续集成分支。我已经为其设置了策略,以便在不构建请求的情况下无法批准它。此外,任何成功的合并都将导致CI构建运行,最终将创建预发布的NuGet程序包并将其推送到私有的NuGet feed中。

当我对预发行版本的行为感到满意时,我创建了一个额外的PR以将develop合并到master中,这反过来又导致CD生成开始,这将导致生产发行的NuGet包。

这就是问题:可能会发生,我想直接从master创建一个修补程序分支,进行一些更改,然后将该分支的新PR直接返回master。这将启动通常的CD管道,并导致生产中的新版本(补丁号增加)。

问题在于,此后我想将master合并回develop,现在它会创建一个新的预发行版本(此时无关紧要)。

我是否有办法告诉Azure DevOps,在特殊情况下,如果将master合并回开发中,则应跳过分支策略?当我真正想做的就是将以前批准的PR从修补程序合并到master时,我是否甚至要从master制作PR来进行开发!?

欢迎任何建议。

1 个答案:

答案 0 :(得分:2)

  

在不应用其策​​略的情况下,如何将master分支合并到developer分支中?

我们知道,分支策略用于保护目标分支。一旦我们在目标分支上设置了分支策略并启用它,提交给目标分支的任何更改都将触发分支策略。

因此,在不应用其策​​略的情况下,没有这样一种现成的方式可以将master分支合并到developer分支。 作为解决方法,我们可以将选项Bypass policies when completing pull requests设置为Allow,即Branches-> develop-> Branch Security:

enter image description here

使用此设置,此指定用户可以在不应用其策​​略的情况下将master分支合并到developer分支。

  

在特殊情况下,我是否可以告诉Azure DevOps,   母版被合并回开发中,分支策略应该是   跳过?

就像我在上面回答的那样,我们无法绕过特殊情况的分支策略,因为我们无法为每种特殊情况定义绕过规则。但是我们可以为某些指定用户提供绕过规则。

  

我真的需要做一个公关才能发展吗?   要做的是将以前批准的PR从修补程序合并到master!?

简短的回答是“否”。

让我给一个草图:

enter image description here

根据您的情况,您有一个基于hotfix分支的master分支。在hotfix分支上完成开发任务之后,我们将hotfix合并到master分支。在完成PR之前,我们需要通过在master分支上设置的分支策略。

然后,我们需要将master分支合并到develop中。您想绕过develop上的分支策略,因为我们在过渡到master分支时已经PR hotfix提交了,对吗?

如果是,这取决于masterdevelop分支上的分支策略是否相同(或更高),以确定是否需要从母版制作PR来进行开发。

如上所述,分支策略用于保护目标分支。如果masterdevelop分支上的分支策略相同,我们可以绕开develop分支上的分支策略。但是,如果masterdevelop分支上的分支策略不同,即使我们已经完成合并,我们仍然需要从master进行PR来开发以保护develop分支到主分支的修补程序。

总之,当我们将master分支设置为主分支,而master分支设置了最高规格的分支策略时,我们可以合并{{1} }到master分支没有公关,当我真正想做的就是将以前批准的PR从修补程序合并到母版时!

希望这会有所帮助。