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

如何用curl/wget从多GitHub仓库直接下载文件夹至React项目?

解决GitHub文件夹下载及SVN冲突问题

一、用curl+tar精准提取目标文件夹

这是最直接的轻量方案,不会冗余下载仓库其他文件,还能指定本地路径:

  • 下载client仓库的proto文件夹到React项目指定目录:
curl -L https://github.com/celer-network/cBridge-typescript-client/archive/refs/heads/main.tar.gz | tar -xz --strip-components=1 "cBridge-typescript-client-main/proto" -C ./src/client-proto
  • 下载transfer widget仓库的proto文件夹到另一个目录:
curl -L https://github.com/celer-network/cBridge-transfer-widget/archive/refs/heads/main.tar.gz | tar -xz --strip-components=1 "cBridge-transfer-widget-main/proto" -C ./src/widget-proto

参数说明:

  • --strip-components=1:去掉压缩包顶层的仓库文件夹,直接提取内部的proto目录
  • -C:指定提取到的本地目标路径,替换成你项目里的实际位置即可

二、用GitHub CLI工具简化操作

如果装了GitHub官方的gh命令行工具,下载单个文件夹更简洁:

gh repo download celer-network/cBridge-typescript-client --dir proto --output ./src/client-proto
gh repo download celer-network/cBridge-transfer-widget --dir proto --output ./src/widget-proto

这个方法不需要手动构造压缩包链接,直接指定仓库和目标文件夹即可。

三、关于wget/curl直接下载文件夹的说明

GitHub本身没有提供直接下载单个文件夹的原生URL,所以单纯用wget或curl无法直接拉取整个文件夹内容。上面两种方法是最接近“直接下载文件夹”的实现,本质是下载仓库压缩包后只提取需要的目录,不会浪费带宽下载无关文件。

四、临时解决SVN冲突的方案

如果还是想用SVN,只要给两个proto文件夹指定不同的本地路径就能绕开冲突:

svn checkout https://github.com/celer-network/cBridge-typescript-client/trunk/proto ./src/client-proto
svn checkout https://github.com/celer-network/cBridge-transfer-widget/trunk/proto ./src/widget-proto

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:28:34