是否可以拒绝一个Azure DevOps组创建主分支的权限,但允许他们在子文件夹下创建分支?

编程语言 2026-07-11

在我的Azure DevOps组织中,在仓库层级,有一个“创建分支”选项,允许用户/组创建分支。我想知道是否有可能在根级别对某个组(Developer)应用“拒绝”权限,但允许同一组在feature/ 或user/ 下创建分支。

我的主要目标是开发人员不能在主分支旁边创建任何分支,但他们可以在文件夹下创建分支。

解决方案

是的,这是可行的,虽然有点隐藏。没有一个易于使用的图形界面来完成这个,但你可以使用 tf git permission 命令通过命令行来设置权限:

Microsoft (R) TF - Team Foundation Version Control Tool, Version 17.14.36721.6
Copyright (c) Microsoft Corporation.  All rights reserved.

Modifies the user access control list (ACL) and displays authorization settings
for a Git repository or branch within a Git repository.

tf git permission [/allow:(* |perm1[,perm2,...]] [/deny:(* |perm1[,perm2,...])]
                  [/remove:(* |perm1[,perm2,...])]
                  [/user:username1[,username2,...]]
                  [/group:groupname1[,groupname2,...]]
                  /collection:TeamProjectCollectionUrl
                  [/teamproject:TeamProjectIdentifier]
                  [/repository:RepositoryIdentifier]
                  [/branch:BranchName]
                  [/login:username,[password]]

the /branch 选项允许你定位到分支和文件夹。

文档实际上已经相当清楚地描述了你的情景:


需要对分支/文件夹进行的命令

以下示例展示了如何创建一个分支策略,以强制执行以下约束:

  • 只有main可以存在于仓库根目录。
  • 允许所有用户在features/ 和users/ 文件夹下创建分支。
  • 管理员将能够在releases/ 文件夹下创建分支。

首先,在仓库根对项目的贡献者阻止CreateBranch权限。

tf git permission /deny:CreateBranch 
                  /group:[FabrikamProject]\Contributors 
                  /collection:https://dev.azure.com/fabrikam-fiber/ 
                  /teamproject:FabrikamProject 
                  /repository:FabrikamRepo

然后,允许贡献者在features和 users下创建分支。

tf git permission /allow:CreateBranch 
                  /group:[FabrikamProject]\Contributors 
                  /collection:https://dev.azure.com/fabrikam-fiber/ 
                  /teamproject:FabrikamProject 
                  /repository:FabrikamRepo 
                  /branch:features

tf git permission /allow:CreateBranch 
                  /group:[FabrikamProject]\Contributors 
                  /collection:https://dev.azure.com/fabrikam-fiber/ 
                  /teamproject:FabrikamProject 
                  /repository:FabrikamRepo 
                  /branch:users

允许管理员在releases下创建分支。

tf git permission /allow:CreateBranch 
                  /group:"[FabrikamProject]\Project Administrators" 
                  /collection:https://dev.azure.com/fabrikam-fiber/ 
                  /teamproject:FabrikamProject 
                  /repository:FabrikamRepo 
                  /branch:releases

最后,允许管理员创建一个名为main的分支,以防它不小心被删除。

tf git permission /allow:CreateBranch 
                  /group:"[FabrikamProject]\Project Administrators" 
                  /collection:https://dev.azure.com/fabrikam-fiber/ 
                  /teamproject:FabrikamProject 
                  /repository:FabrikamRepo 
                  /branch:main
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章