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

如何一次性下载GitHub指定仓库的全部发布版本(含源码)?

批量下载GitHub仓库所有发布版本(含源码)

方法一:GitHub CLI + Shell 脚本(推荐,无需额外依赖)

适合Linux/macOS/WSL环境,前提是已安装并登录GitHub CLI(执行gh auth login完成登录)。

将以下代码保存为脚本(比如download-all-releases.sh),替换REPO变量为目标仓库的所有者/仓库名(例如vuejs/core),然后运行:

REPO="owner/repo-name"
mkdir -p "$REPO-releases"
cd "$REPO-releases"

# 遍历所有发布版本的Tag,逐个下载资产和源码
gh release list --repo "$REPO" --json tagName --jq '.[].tagName' | while read -r TAG; do
  echo "处理发布版本: $TAG"
  # 创建当前版本的目录
  mkdir -p "$TAG"
  # 下载该版本的所有资产文件(二进制包、文档等)
  gh release download "$TAG" --repo "$REPO" --dir "$TAG"
  # 下载源码包(zip格式,如需tar.gz可替换为--archive tar.gz)
  gh release download "$TAG" --repo "$REPO" --dir "$TAG" --archive zip
done

方法二:curl + GitHub API(无CLI依赖)

适合无法安装GitHub CLI的环境,需要提前生成GitHub个人访问令牌(需repo权限,在GitHub账号设置的「Developer settings」中创建)。

需要安装jq工具(用于解析JSON),然后运行以下脚本:

REPO="owner/repo-name"
TOKEN="your-personal-access-token"
mkdir -p "$REPO-releases"
cd "$REPO-releases"

# 获取所有发布的资产链接、ZIP源码链接、TAR源码链接,批量下载
curl -s -H "Authorization: token $TOKEN" "https://api.github.com/repos/$REPO/releases" | jq -r '.[] | .tagName as $tag | (.assets[] | .browser_download_url) + " " + $tag, .zipball_url + " " + $tag, .tarball_url + " " + $tag' | while read -r URL TAG; do
  mkdir -p "$TAG"
  echo "下载中: $(basename "$URL")"
  curl -L -o "$TAG/$(basename "$URL")" "$URL"
done

注意事项

  • 若仓库发布数量较多,使用API方式可能触发GitHub速率限制,添加令牌可提升限额;CLI方式会自动处理速率限制
  • 若不需要源码包的两种格式(zip/tar.gz),可删除脚本中对应的行
  • 下载的文件会按发布Tag分类存放在对应目录中,便于管理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:14:54