Git 权限命令

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

tf git permission 命令修改用户访问控制列表(ACL),并在 Git 存储库中显示 Git 存储库或分支的授权设置。

先决条件

  • 若要查看权限,可以查看要请求的信息类型的项目:查看项目集合的集合级别信息查看项目的项目级信息,以及 查看存储库和分支的读取(如果查看分支权限)。

  • 若要管理权限,请 管理所需项目的权限

有关详细信息,请参阅 默认 Git 权限

语法

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]]

参数

参数 描述
/allow:(* |<perm1>[,<perm2>,...]) 允许的权限。
/deny:(* |<perm1>[,<perm2>,...]) 要拒绝的权限。
/remove:(* |<perm1>[,<perm2>,...]) 要删除的权限,有时称为未设置。 可以在同一调用中使用所有三个 /allow/deny/remove。 有关允许、拒绝和删除设置如何交互的详细信息,请参阅 权限设置
/user:<username1>[,<username2>,...] 允许、拒绝或删除权限的用户。 必须至少指定一个用户或组。
/group:<groupname1>[,<groupname2>,...] 允许、拒绝或删除权限的组或组。 必须至少指定一个用户或组。 组和个人可以一起使用。
/collection:<TeamProjectCollectionUrl> 指定包含查看或修改权限的项目集合的 URL。 例如:http://myserver:8080/tfs/DefaultCollectionhttps://fabrikam-fiber.visualstudio.com。 此参数是必需的。
/teamproject:<TeamProjectIdentifier> 指定包含查看或修改权限的项目的名称。
/repository:<RepositoryIdentifier> 指定包含查看或修改权限的存储库的名称。
/branch:<BranchName> 指定包含查看或修改权限的分支的名称。 如果指定 /branch,还必须指定 /repository
/login:<username>[,<password>] 指定要运行命令的用户帐户。 请参阅 使用 Team Foundation 版本控制命令

有关 tf git permission 命令可以管理的权限列表,请参阅 Git 存储库权限命名空间

例子

注意

以下示例分为多行,便于阅读。 若要将其复制并粘贴到命令行中并运行它们,请先将其复制并粘贴到记事本或其他工具中,然后对其进行编辑,以便命令包含在一行中。

查看集合级别权限

以下示例列出了 fabrikam-fiber 集合的权限。

tf git permission /collection:https://dev.azure.com/fabrikam-fiber 
                  /login:FabrikamUser@hotmail.com,FabrikamPassword

查看项目级别权限

以下示例列出了 FabrikamFiber 项目的项目级别权限,该权限位于 fabrikam-fiber 集合中。

tf git permission /collection:https://dev.azure.com/fabrikam-fiber 
                  /teamproject:FabrikamFiber
                  /login:FabrikamUser@hotmail.com,FabrikamPassword

查看存储库级别权限

以下示例列出了 FabrikamFiber 存储库的项目级别权限,该存储库位于 FabrikamFiber 项目中。

tf git permission /collection:https://dev.azure.com/fabrikam-fiber 
                  /teamproject:FabrikamFiber 
                  /repository:FabrikamFiber 
                  /login:FabrikamUser@hotmail.com,FabrikamPassword

需要分支文件夹命令

以下示例演示如何创建强制实施以下约束的分支策略:

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

在此示例中,使用以下集合、项目和存储库:

  • /collection: https://fabrikam-fiber.visualstudio.com
  • /teamproject: FabrikamProject
  • /repository FabrikamRepo

首先,在项目的参与者的存储库根目录中阻止 CreateBranch 权限。

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

然后,允许参与者在 featuresusers下创建分支。

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