我们在VSTS中设置了分支策略,以防止pull请求被合并到master中,除非构建通过并且工作项被链接。但是,我不知道如何防止开发人员直接推送到master。将“贡献”权限设置为拒绝不允许合并pull请求。应该允许所有开发者将PR合并到master中,但不允许任何开发者直接推送到master中。这可能吗?
1l5u6lss1#
Branch policies已经完全按照你说的做了。当分支策略到位时,PR是必需的。确保您的开发人员没有“免除策略执行”权限。
sbdsn5lh2#
当您将主分支策略设置为Require a minimum number of reviewers时,主分支将自动受到保护。您将无法推送任何提交。为了进行任何更改,您需要创建一个新的分支,并创建一个pull请求来合并修改。
Require a minimum number of reviewers
bwntbbo33#
我知道这个问题有点老,但这里有一些额外的信息...不幸的是,我不能添加评论到“最佳答案”,所以这里是一个新的,你可以把它当作一个评论:分支策略已经完全按照您的要求执行了。当分支策略到位时,需要PR。
确保您的开发人员没有“免除策略执行”权限。
我们应该在哪里查看开发人员是否具有“免除策略执行”权限?来自learn.microsoft.com:有几种权限允许用户绕过分支策略。在TFS 2015至TFS 2018 Update 2中,免除策略实施权限允许具有此权限的用户执行以下操作:
在Azure DevOps Services中,免除策略实施权限被删除,其功能分为以下两个新权限:
*完成拉取请求时绕过策略*推流时绕过策略
以前启用了豁免策略实施的用户现在启用了两个新权限。您可以在下面找到这些选项:
假设用户可以对自己的主分支的本地版本做任何事情,但是Azure DevOps会拒绝向远程推送?如果/当这种情况发生时,开发人员需要做什么来撤销他们在本地存储库上陷入的混乱?这是因为Azure DevOps中的分支策略不是让我们称之为“vanilla-git”。它是Microsoft特定的扩展,与用户的本地git分支无关。因此,用户可以对他的本地git仓库做任何他想做的事情- DevOps只是阻止一些“服务器端”的东西。关于开发人员如何消除混乱的问题:我推荐this SO question。
3条答案
按热度按时间1l5u6lss1#
Branch policies已经完全按照你说的做了。当分支策略到位时,PR是必需的。
确保您的开发人员没有“免除策略执行”权限。
sbdsn5lh2#
当您将主分支策略设置为
Require a minimum number of reviewers
时,主分支将自动受到保护。您将无法推送任何提交。为了进行任何更改,您需要创建一个新的分支,并创建一个pull请求来合并修改。bwntbbo33#
我知道这个问题有点老,但这里有一些额外的信息...
不幸的是,我不能添加评论到“最佳答案”,所以这里是一个新的,你可以把它当作一个评论:
分支策略已经完全按照您的要求执行了。当分支策略到位时,需要PR。
确保您的开发人员没有“免除策略执行”权限。
不执行策略
我们应该在哪里查看开发人员是否具有“免除策略执行”权限?
来自learn.microsoft.com:
有几种权限允许用户绕过分支策略。在TFS 2015至TFS 2018 Update 2中,免除策略实施权限允许具有此权限的用户执行以下操作:
在Azure DevOps Services中,免除策略实施权限被删除,其功能分为以下两个新权限:
*完成拉取请求时绕过策略
*推流时绕过策略
以前启用了豁免策略实施的用户现在启用了两个新权限。
您可以在下面找到这些选项:
本地Git
假设用户可以对自己的主分支的本地版本做任何事情,但是Azure DevOps会拒绝向远程推送?如果/当这种情况发生时,开发人员需要做什么来撤销他们在本地存储库上陷入的混乱?
这是因为Azure DevOps中的分支策略不是让我们称之为“vanilla-git”。它是Microsoft特定的扩展,与用户的本地git分支无关。因此,用户可以对他的本地git仓库做任何他想做的事情- DevOps只是阻止一些“服务器端”的东西。
关于开发人员如何消除混乱的问题:我推荐this SO question。