保护VisualStudio团队服务中的Git分支,如GitHub中的

保护VisualStudio团队服务中的Git分支,如GitHub中的,git,git-flow,azure-devops,Git,Git Flow,Azure Devops,我想保护我的VisualStudioTeamServices Git存储库中的一些分支,就像在GitHub中一样。我的用例与类似,但不完全相同 我们将GitFlow与master和develope分支一起使用。以下是我的要求: 在主分支中,我只希望允许合并提交。所有开发人员都应拒绝直接提交到master分支。所有开发人员都应该允许合并提交(=完成Git流发布或修补程序) 只允许通过拉取请求提交到develope分支。应该允许任何开发人员合并请求,但不允许直接提交到develope 因为我们有

我想保护我的VisualStudioTeamServices Git存储库中的一些分支,就像在GitHub中一样。我的用例与类似,但不完全相同

我们将GitFlow与
master
develope
分支一起使用。以下是我的要求:

  • 主分支中,我只希望允许合并提交。所有开发人员都应拒绝直接提交到
    master
    分支。所有开发人员都应该允许合并提交(=完成Git流发布或修补程序)
  • 只允许通过拉取请求提交到
    develope
    分支。应该允许任何开发人员合并请求,但不允许直接提交到
    develope
因为我们有相当多的存储库,所以设置应该很容易,或者可以通过RESTAPI自动化设置


GitHub可以通过其保护分支设置轻松处理这些场景。我在VisualStudioTeamServices的分支策略中找不到类似的内容

我认为分支策略是您在VST中寻找的功能

对于开发或主分支,您可能希望选中“需要最少数量的审阅者”框,以强制执行通过PRs传入的所有更改,并阻止直接推送。如果你真的不在乎审查要求,你可以勾选“允许用户批准他们自己的更改”框,但无论如何,让审查员来支持可能是一个好的做法

GH中受保护分支的另一个功能是阻止强制推送。这是由VSTS中的权限控制的,该权限可以在repo或分支级别设置,称为“重写和销毁历史(强制推送)”

此MSDN主题包含设置策略的更多详细信息和屏幕截图:

所有这些设置都可以通过REST进行配置。以下是策略API的链接:


注意,在使用REST API时,您可以一次为多个分支配置策略,甚至可以为通配符设置策略,即强制要求release/*下的所有分支都需要代码检查

谢谢。对于
master
分支,我不想使用pull请求。我们使用的是Git Flow,我只希望在完成Git Flow发布后才允许提交(这是一个
Git合并--无ff
操作)。应阻止直接提交。对此有政策吗?接受这一点作为第一点的答案。关于第二点(保护主分支),我从微软得到了一个答案,这是目前不可用的,但可能最终将在未来得到支持。