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

Windows下如何通过命令行或git批量设置GitHub所有仓库为公开?

Windows环境下可以实现,Git本身不支持这个操作——因为仓库公开/私有是GitHub平台侧的配置,不属于Git版本控制的功能范畴,用GitHub官方命令行工具gh搭配PowerShell就能完成批量修改,全程不需要图形界面操作。

前置准备
  • 安装GitHub CLI:打开管理员权限的PowerShell,执行winget install --id GitHub.cli完成安装,安装结束后关闭当前终端重新打开,确保gh命令可以正常识别。
  • 账号授权:在终端执行gh auth login,按照交互提示完成操作:选择服务为GitHub.com,选择HTTPS为Git传输协议,选择通过浏览器完成授权,授权时记得勾选仓库管理相关的权限,否则后续修改会报错。
批量修改操作

重要提醒:将私有仓库改为公开前请务必确认仓库内没有密钥、内部业务代码、敏感配置等不宜公开的内容,修改后所有人都可以访问你的仓库内容,操作前建议先核对仓库列表。

直接在PowerShell中执行以下脚本即可:

# 默认拉取当前账号下最多1000个非Fork的个人仓库,需要包含Fork仓库就删除--no-fork参数
gh repo list --limit 1000 --json nameWithOwner,visibility --no-fork | ConvertFrom-Json | ForEach-Object {
    if ($_.visibility -ne "PUBLIC") {
        Write-Host "处理中:将 $($_.nameWithOwner) 切换为Public状态"
        gh repo edit $_.nameWithOwner --visibility public
    }
}

脚本自带判断逻辑,只会对当前非公开状态的仓库执行修改,已经是Public的仓库会自动跳过,不会重复操作。

补充说明
  • 如果需要批量修改你有管理权限的组织下的仓库,只需要在gh repo list命令后追加--org 你的组织名称参数即可。
  • 如果执行过程中报权限错误,先运行gh auth status检查当前登录账号是否正确,以及是否授予了仓库管理权限,权限异常时重新执行gh auth login刷新授权即可。
  • 如果你只想修改部分指定仓库,可以提前把要改的仓库全名(格式为用户名/仓库名)存在txt文件里,循环读取文件内容调用gh repo edit命令即可,不用全量拉取所有仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:06:21