You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TFS 2017修改Git默认分支为main及新仓库默认配置方案咨询

TFS 2017 Update 3 Git默认分支批量修改方案

一、存量仓库默认分支批量修改

优先使用TFS官方REST API实现批量操作,不会破坏数据一致性,操作步骤如下:

  • 先在TFS中创建权限范围包含Git仓库读写的个人访问令牌(PAT)
  • 运行以下PowerShell脚本批量替换所有存量仓库的默认分支:
# 替换为实际的TFS实例地址、集合名称、PAT
$tfsBaseUrl = "http://你的TFS服务地址:8080/tfs/集合名称"
$pat = "你生成的PAT令牌"
$authHeader = @{
    Authorization = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat"))
}

# 拉取集合下所有未删除的Git仓库
$repoList = Invoke-RestMethod -Uri "$tfsBaseUrl/_apis/git/repositories?api-version=4.1" -Headers $authHeader -Method Get

foreach ($repo in $repoList.value) {
    # 仅修改默认分支为master的仓库
    if ($repo.defaultBranch -eq "refs/heads/master") {
        $updateParam = @{
            defaultBranch = "refs/heads/main"
        } | ConvertTo-Json
        Invoke-RestMethod -Uri "$tfsBaseUrl/_apis/git/repositories/$($repo.id)?api-version=4.1" `
            -Headers $authHeader -Method Patch -Body $updateParam -ContentType "application/json"
        Write-Host "已完成仓库【$($repo.name)】默认分支修改"
    }
}

二、新建仓库默认分支自动设为main

无需额外开发,直接在TFS后台配置全局规则即可:

  • 进入TFS集合管理页面,选择版本控制设置分类
  • 找到Git仓库默认分支配置项,将默认值从master修改为main并保存
  • 配置生效后所有新创建的Git仓库默认分支自动为main,无需手动调整

三、SQL查询默认分支不为main的仓库

注意:仅可对TFS数据库执行查询操作,禁止直接修改库表内容,否则会导致TFS服务异常、数据损坏,且不属于微软官方支持范围
查询对应集合库的SQL语句如下:

-- 替换语句中的[Tfs_你的集合名称]为实际的TFS集合数据库名
USE [Tfs_你的集合名称]
GO
SELECT 
    p.ProjectName AS 所属项目,
    r.Name AS 仓库名称,
    r.DefaultBranch AS 默认分支路径
FROM 
    tbl_GitRepository r
INNER JOIN 
    tbl_Project p ON r.ProjectId = p.ProjectId
WHERE 
    r.IsDeleted = 0 -- 排除已删除的仓库
    AND r.DefaultBranch NOT LIKE '%/main'
ORDER BY 
    p.ProjectName, r.Name

内容的提问来源于stack exchange,提问作者Mikhail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:06:03