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

如何通过CLI批量修改GitHub仓库默认分支?

批量修改GitHub仓库默认分支(无需UI)

完全可以通过GitHub API或官方命令行工具gh实现自动化操作,不用手动进入设置页面。下面是两种实用方案:

方案一:使用GitHub官方CLI工具(推荐)

gh是GitHub官方推出的命令行工具,操作简洁且无需手动处理API鉴权流程。

操作步骤:

  1. 安装gh并完成账号登录:

    # macOS安装示例,其他系统可参考官方文档
    brew install gh
    # 登录GitHub账号
    gh auth login
    
  2. 批量修改脚本示例(以组织仓库为例):
    将脚本中的your-org-name替换为你的组织名称,main替换为目标默认分支名:

    ORG="your-org-name"
    NEW_DEFAULT_BRANCH="main"
    
    # 获取组织下所有仓库名(--limit值设为大于你的仓库总数即可)
    gh repo list $ORG --limit 200 --json name -q '.[].name' | while read REPO; do
      # 修改当前仓库的默认分支
      gh repo edit $ORG/$REPO --default-branch $NEW_DEFAULT_BRANCH
      echo "✅ 已更新 $ORG/$REPO 的默认分支为 $NEW_DEFAULT_BRANCH"
    done
    

    若处理个人仓库,只需将gh repo list $ORG替换为gh repo list <你的用户名> --type owner。

方案二:直接调用GitHub API(适合无gh环境)

通过curl调用GitHub REST API,需先生成一个带有repo权限的个人访问令牌(PAT)。

脚本示例:

ORG="your-org-name"
NEW_DEFAULT_BRANCH="main"
PAT="your-personal-access-token" # 从GitHub设置页面生成,需开启repo权限

# 处理分页获取仓库列表(示例获取前2页,可根据仓库数量调整循环次数)
for PAGE in {1..2}; do
  curl -s -H "Authorization: token $PAT" "https://api.github.com/orgs/$ORG/repos?per_page=100&page=$PAGE" | jq -r '.[].full_name' | while read REPO_FULL_NAME; do
    # 调用API修改默认分支
    curl -s -X PATCH -H "Authorization: token $PAT" \
      -H "Content-Type: application/json" \
      "https://api.github.com/repos/$REPO_FULL_NAME" \
      -d "{\"default_branch\": \"$NEW_DEFAULT_BRANCH\"}"
    echo "✅ 已更新 $REPO_FULL_NAME 的默认分支为 $NEW_DEFAULT_BRANCH"
  done
done

注意事项:

  • 确保目标分支(如main)已存在于每个仓库中,否则API会返回错误
  • 处理个人仓库时,API路径需改为https://api.github.com/users/<你的用户名>/repos
  • 若仓库总数超过200,需调整分页循环的页数范围

内容的提问来源于stack exchange,提问作者David Muñoz Tord

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:05:14