git - 我如何在 AzureDevOps 存储库中实现/设置 GitFlow,并在 master 和 develop 上使用 PR 分支策略?

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

当我在 master 和 develop 分支上有 pull 请求分支策略时,如何在我的 Azure Repos 上实现 Git Flow?我很想让它工作,但我不知道最佳做法。我目前在我的 Azure Git 存储库上设置了 gitflow,但我在 master 上有 PR 分支策略。如果因为没有创建 PR 而推送到 master 失败,我该如何完成发布或修补程序分支。同样,如果我的开发分支在 AzureDevOps 存储库中有 PR 分支策略,我无法使用“git flow feature ...finish”“完成”我的功能,因为推送到开发分支会失败?

我在开发(用于完成功能)和 master(用于发布 merge 和/或修补程序 merge )上没有 PR 分支策略的情况下进行了尝试。

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

该指南更多地针对从“master”创建功能分支以获取新功能并与 PR merge ,然后对于发布,它建议您从 master 创建发布和修补程序分支,这些分支永远不会 merge 回来。

预期: 能够完成功能并通过 PR merge 回开发 能够通过 PR 同时完成 releas 和 hotfix 并 merge 回 master 和 develop。

实际: 完成一个功能。尝试 merge 到任何对其具有 PR 分支策略的分支(master、develop)时,发布或修补程序失败

最佳答案

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

您将需要做我现在正在做的同样的事情 - 根据您所依赖的技术(例如 Azure DevOps),确定哪些标准、流程和工作流最适合您的团队。要使用 GitFlow,您可能必须为您的团队创建一些时髦的标准。例如,您可以创建一个 Staging 分支,所有功能都从该分支分支。然后,您根据需要使用 merge 请求从登台 merge 到开发。然而,在某个时候,我认为您会发现,与仅创建自己的标准和流程相比,使 GitFlow 与 Azure DevOps 中的附加功能一起工作所必须做的事情会导致更多的麻烦和技术债务。

关于git - 我如何在 AzureDevOps 存储库中实现/设置 GitFlow,并在 master 和 develop 上使用 PR 分支策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108148/

相关文章:

git - 将特定提交中的文件 check out 到不同的目录

git add、commit 和 push 命令合二为一?

azure-devops - 如何处理与 Azure DevOps 中的错误相关的工作

azure - 当对 Linux Web 应用程序使用 Azure DevOps CI/CD 时,如何将构建工件压缩并仅作为 zip 文件发布,而不是复制到目录

azure-devops - Azure DevOps 拉取请求禁止操纵所需的审阅者

c# - 如何以编程方式获取 Azure DevOps 中所有已完成的拉取请求的列表?

git - 如何在 git 中编辑不正确的提交消息(我已推送)?

azure - 自动将解决方案中的特定项目部署到Azure

continuous-integration - CodeCommit 中的拉取请求

git - 如何管理GIT存储库层次结构?