一次性克隆 GitHub 组织和个人的全部仓库

当你维护数十个以上的仓库时,逐个克隆不免让人烦躁,本文将介绍如何一次性克隆 GitHub 组织或个人的全部仓库到本地。

API

首先确定对应的 GitHub 接口地址,并将其中的 <org><user> 分别替换为组织和个人的名称。

组织仓库 API

1URL="https://api.github.com/orgs/<org>/repos?per_page=100&page=1"

用户仓库 API

1URL="https://api.github.com/users/<user>/repos?per_page=100&page=1"

克隆仓库

由于两个接口返回格式是类似的,填好接口地址后,接着使用以下命令进行克隆。

1curl $URL |
2  jq '.[] | .ssh_url' |
3  xargs printf 'git clone %s & ' |
4  sh
  1. curl $URL 调用接口。
  2. jq '.[] | .ssh_url' 读取每个仓库的 ssh_url,当然你可以使用 clone_url 以 HTTPS 协议克隆。
  3. xargs printf 'git clone %s & ' 对多个克隆命令进行拼接,其中尾部的 & 表示后台运行,其不会等待其他命令返回结果。
  4. sh 执行上述生成的多个克隆命令。
razonyang
2024年7月23日星期二 2023年2月11日星期六