Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种简单的方法可以从GitHub克隆所有明星回购?_Github - Fatal编程技术网

有没有一种简单的方法可以从GitHub克隆所有明星回购?

有没有一种简单的方法可以从GitHub克隆所有明星回购?,github,Github,我正在寻找备份我所有星号存储库的方法,我正在寻找一种简单的备份方法。这应该可以做到。请注意,您将需要 curlhttps://api.github.com/users//starred | jq-r'.[].html\u url'| xargs-l git克隆 如果你不想使用jq你可以用这个丑陋的awk行替换 awk'/^{4}“html_url”/&$0=$4'FS='”| 如果您对ruby没有任何问题,并且可以安装一些gems,您可以试一试 gem安装octokit git parall

我正在寻找备份我所有星号存储库的方法,我正在寻找一种简单的备份方法。

这应该可以做到。请注意,您将需要

curlhttps://api.github.com/users//starred |
jq-r'.[].html\u url'|
xargs-l git克隆
如果你不想使用
jq
你可以用这个丑陋的
awk
行替换

awk'/^{4}“html_url”/&$0=$4'FS='”|

如果您对ruby没有任何问题,并且可以安装一些gems,您可以试一试

gem安装octokit git parallel

那么这个就可以了

ruby -e "require 'octokit'; require 'git'; require 'parallel'; Parallel.each(Octokit.starred('__username__'), :in_processes=>4){|s| Git.clone(s[:html_url], s[:name])}"
为了便于阅读:

require 'octokit'
require 'git'
require 'parallel'

Parallel.each(Octokit.starred('__username__'), :in_processes=>4){|s| Git.clone(s[:html_url], s[:name])}

不过这似乎有些过分。

是的,这里有一个简单的一行代码(将
foo
更改为您的用户名):

xargs
添加
-p
参数,通过设置并行进程数(例如
-P4
=4个进程)来提高速度


要提高GitHub限制,您可以通过指定API密钥进行身份验证。

我认为GitHub API有一个限制,因为它在30次重复操作后停止了克隆。@nighthawk24结果被分页,API默认返回前30次。应该通过分页来实现这一点。
USER=foo; curl "https://api.github.com/users/$USER/starred?per_page=1000" | grep -o 'git@[^"]*' | xargs -L1 git clone