要求在文件夹中创建分支

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

当多个人员在一个存储库中协作时,分支的数量和名称可能很快就会失去控制。 分层分支文件夹是驯服混沌的有效方法。 Azure DevOps Services、TFS 和 Visual Studio 将 / 视为文件夹分隔符,默认情况下会自动折叠文件夹。 这样,就不必遍历每个分支即可找到要查找的分支。 你也不必依靠每个人来弄清楚。 Azure Repos 和 TFS 可以强制正确使用分支文件夹。

规划

确定要允许的文件夹结构。 例如,我们将存储库设置为强制实施以下规则:

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

注意

有关分支命名策略的更多示例和信息,请参阅采用 Git 分支策略

准备工作

  • 你将需要 Team Foundation 版本控制命令(tf.exe)。
  • 需要帐户或集合的 URL、项目名称和存储库的名称。 对于本示例,我们将使用 https://fabrikam-fiber.visualstudio.comFabrikamProjectFabrikamRepo

注意

默认情况下,命令 tf.exe 随 Visual Studio 一起安装。 可以通过开发人员命令提示访问它。 有关其他选项,请下载团队资源管理器

强制实施权限

在开发人员命令提示中,在“启动”>“Visual Studio”>“开发人员命令提示”下运行以下命令。 每个命令前面都有关于它正在执行的操作的说明。 如果未缓存个人访问令牌(例如,通过登录到 Azure DevOps Services Web 门户),系统将提示你登录。

首先,在存储库根目录下阻止项目参与者的“创建分支”权限。

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

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

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

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

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

最后,允许管理员创建名为 main 的分支,以防将其意外删除。

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

注意

有关详细信息,请参阅 tf git 权限。 还可以通过运行 tf git /?tf git permission /? 从命令行访问这些命令的帮助。

重命名旧分支

  1. 在 Web 上打开存储库,然后选择“分支”视图

  2. 找到现有分支。 如果找不到,可能需要查看“全部”选项卡。

  3. 选择其上下文菜单(... 按钮),然后选择“新建分支”。

    “创建分支”菜单

  4. 键入分支的新名称,例如“users/frank/readme-fix”。 选择“创建分支”。

    创建新分支

  5. 选择旧分支名称旁边的红色垃圾桶图标以将其删除。

    删除旧分支

注意

你设置的任何自定义权限或分支策略都不会被迁移。