我们在 VSTS 中设置了分支策略,以防止拉取请求合并到主控中,除非构建过程和工作项已链接。但是,我不知道如何阻止开发人员直接推送到 master。将“贡献”权限设置为拒绝不允许合并拉取请求。
应允许所有开发人员将 PR 合并到 master,但不允许任何人直接推送到 master。这可能吗?
分支机构政策已经完全按照您所说的进行。当分支机构政策到位时,需要 PR。
确保您的开发者没有“豁免政策执行”权限。
当您将主分支策略设置为
Require a minimum number of reviewers
时,主分支将自动受到保护。您将无法推送任何提交。为了进行任何更改,您将需要创建一个新分支,并创建一个拉取请求来合并修改。
我知道这个问题有点老了,但这里有一些附加信息......
不幸的是,我无法向“最佳答案”添加评论,因此这是一个新的评论,您可以将其视为评论:
分支机构政策已经完全按照您所说的进行。当分支机构政策到位时,需要 PR。
100%同意
确保您的开发者没有“豁免政策执行”权限。
100%同意
我们应该去哪里查看开发者是否拥有“免于政策执行”的权限?
有多种权限允许用户绕过分支策略。在 TFS 2015 到 TFS 2018 Update 2 中,免除策略执行权限允许具有此权限的用户执行以下操作:
- 完成拉取请求时,选择覆盖策略并完成拉取请求,即使当前的分支策略集不满足。
- 直接推送到分支,即使该分支设置了分支策略。请注意,当具有此权限的用户进行将覆盖分支策略的推送时,推送会自动绕过分支策略,而不会选择加入步骤或发出警告。
在 Azure DevOps Services 中,删除了免除策略执行权限,其功能分为以下两个新权限:
- 完成拉取请求时绕过策略
- 推送时绕过策略
之前启用了免除策略执行的用户现在启用了这两个新权限。
您可以在以下位置找到这些选项:
组织/项目/设置/存储库
大概用户可以对自己的本地版本的 master 分支执行任何操作,但是 Azure DevOps 会拒绝推送到远程吗?如果/当发生这种情况时,开发人员需要做什么来消除他们在本地存储库中陷入的混乱?
出现这种情况是因为 Azure DevOps 中的分支策略不让我们称之为“vanilla-git”。它是 Microsoft 特定的扩展,与用户的本地 git 分支无关。因此,用户可以对其本地 git 存储库执行任何他想要的操作 - DevOps 只是阻止一些“服务器端”的东西。
关于开发人员如何消除混乱的问题:
我推荐这个问题。