我如何在masterDevOps存储库中使用主分支和开发分支上的PR分支策略来实现/设置GitFlow?

时间:2019-05-13 08:09:41

标签: git azure-devops pull-request git-flow

当我在master和development分支上具有拉取请求分支策略时,如何在Azure Repos上实现Git Flow?我很想让它工作,但我不知道最佳实践。我目前在Azure Git存储库上有gitflow etup,但是我在master上有PR分支策略。如果由于没有创建PR导致向主服务器的推送失败,如何完成发行版或修补程序分支。类似地,如果我的开发分支在AzureDevOps存储库中有PR分支策略,则我无法使用“ git flow feature ... finish”“完成”我的功能,因为推送到开发分支将会失败

我在开发(用于完成功能)和主版本(用于发布合并和/或修补程序合并)时没有PR分支策略的情况下尝试过

我尝试查阅AzureDevOps的分支策略指南,但未提及GitFlow https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=azure-devops#manage-releases

指南更直接地针对从“主”创建功能分支以用于新功能并与PR合并,然后针对发行版,建议您从主创建永不合并的发行版本和修补程序分支。

预期: 能够完成功能并通过PR重新合并以进行开发 能够完成发布和修补程序,并同时合并回母版并通过PR开发。

实际: 完成功能。尝试合并到具有PR分支策略(主,开发)的任何分支时,发行版或修补程序均失败

2 个答案:

答案 0 :(得分:0)

在我们组织的标准会议上,您的问题就在前几天提出。在研究了几个小时之后,我最好的答案是GitFlow将不与Azure DevOps提供的git存储库所提供的所有额外功能兼容。毕竟,GitFlow只是一组用于管理git存储库中的分支的标准和工作流。 Azure DevOps是git存储库的一种特定实现,在其顶部分层了许多附加功能。例如,如果您已应用分支策略进行开发,则GitFlow Feature工作流程将不允许您完成开发之外的功能分支,因为如您所讨论的那样,无法进行提交。此外,您会发现构建和发布管道已连接起来以监视特定分支,这与GitFlow的发布工作流程无法很好地配合。

您将需要做我现在正在做的同一件事-根据您所依赖的技术(例如Azure DevOps),确定哪种标准,流程和工作流最适合您的团队。要使用GitFlow,您可能必须为您的小组创建一些时髦的标准。例如,您可以创建一个 Staging 分支,所有功能都从中分支。然后,您可以根据需要将合并请求从暂存合并为开发。但是,在某个时候,我认为您会发现,使GitFlow与Azure DevOps中的其他功能一起使用所要做的事情,不仅会创建自己的标准和流程,还会引起更多的麻烦和技术负担。

答案 1 :(得分:0)

一个gitflow finish功能将功能分支合并到开发分支中。因此,我们没有使用gitflow finish功能,而是创建了一个pull请求来将更改进行开发。

完成发行版或修补程序可能会有些棘手。为此,我们在自动发布定义中创建了一个步骤(在Azure devops中),该步骤将发布分支合并到master中并自动进行开发。根据分支策略,exempt是运行此作业的用户(可能是某些构建/发布代理用户)。在某些情况下,需要一些手动干预。即当对发布分支的提交与对开发分支的提交发生冲突时。