You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux环境下无需Git Clone如何下载Git仓库?

解决Linux环境下无法git clone时直接获取Git仓库文件的方法

当然有办法直接在Linux环境里拿到仓库文件,不用绕Windows中转,给你几个实用的方案:

方案1:用wget/curl直接下载仓库的压缩包

几乎所有主流Git托管平台(GitHub、GitLab、Gitee等)都提供直接下载仓库压缩包的功能,你只需要构造对应的下载链接就行:

  • 比如GitHub的仓库,主分支(一般是main或master)的压缩包链接格式是:https://github.com/<用户名>/<仓库名>/archive/refs/heads/<分支名>.zip
  • GitLab的格式类似:https://gitlab.com/<用户名>/<仓库名>/-/archive/<分支名>/<仓库名>-<分支名>.zip

拿到链接后,在Linux终端里用wget或者curl下载:

# 用wget下载
wget https://github.com/username/your-repo/archive/refs/heads/main.zip

# 或者用curl
curl -O https://github.com/username/your-repo/archive/refs/heads/main.zip

下载完成后解压即可:

unzip main.zip
# 解压后会得到一个以「仓库名-分支名」命名的文件夹,里面就是仓库的所有文件

注意:这个方法不会包含仓库的子模块,如果你的项目依赖子模块,之后可能需要单独下载子模块的压缩包,或者等代理问题解决后再用git submodule update --init来拉取。

方案2:用git archive直接拉取远程归档(如果git的HTTP请求能通的话)

如果你的git只是clone命令被拦,但git的HTTP请求还能正常发起,可以试试用git archive命令直接拉取远程仓库的归档并解压:

git archive --remote=https://github.com/username/your-repo HEAD | tar -x

这个命令会直接把远程仓库当前HEAD指向分支的文件解压到当前目录,不需要先下载压缩包再解压,一步到位。不过如果这个命令也被代理拦截的话,还是方案1更稳妥。

方案3:临时配置git代理(如果代理只是没配置而非完全禁止)

有时候不是代理阻止了git操作,而是你没给git配置代理。可以试试临时设置git的HTTP/HTTPS代理:

# 设置HTTP代理
git config --global http.proxy http://your-proxy-ip:port

# 设置HTTPS代理
git config --global https.proxy https://your-proxy-ip:port

配置完后再尝试git clone,如果成功的话,之后可以用git config --global --unset http.proxygit config --global --unset https.proxy取消代理配置。不过如果代理是完全禁止git的请求,这个方法就没用了。


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

火山引擎 最新活动