在使用 Git 时,你可以通过设置代理服务器来访问被限制的资源。Git 支持多种协议(如 HTTP、HTTPS、SSH),不同协议的代理设置方法有所不同。以下是常见的设置方法:
HTTP/HTTPS 协议代理设置
Git 通过 http.proxy 和 https.proxy 配置项设置 HTTP/HTTPS 代理。
全局设置(对所有仓库生效)
# 设置 HTTP 代理
git config --global http.proxy http://代理服务器地址:端口
# 设置 HTTPS 代理
git config --global https.proxy http://代理服务器地址:端口
# 示例
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890单个仓库设置(仅对当前仓库生效)
# 进入仓库目录后执行
git config http.proxy http://代理服务器地址:端口
git config https.proxy http://代理服务器地址:端口SSH 协议代理设置
SSH 协议需要修改 SSH 配置文件(通常位于 ~/.ssh/config)。
编辑配置文件
vim ~/.ssh/config添加SOCKS5代理
Host github.com # 针对特定域名设置代理
HostName github.com
User git
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
Host * # 对所有域名生效
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
参数说明:
-X 5:使用 SOCKS5 协议-x 127.0.0.1:7890:代理服务器地址和端口
取消代理设置
# 取消全局 HTTP/HTTPS 代理
git config --global --unset http.proxy
git config --global --unset https.proxy
# 取消 SSH 代理需编辑 ~/.ssh/config 文件,删除相关配置行临时使用代理(存疑)
# 临时为单个命令设置代理
HTTP_PROXY=http://代理服务器地址:端口 HTTPS_PROXY=http://代理服务器地址:端口 git clone https://github.com/username/repo.git注意事项
-
用户名密码认证:如果代理需要认证,格式为:
BASHgit config --global http.proxy http://用户名:密码@代理服务器地址:端口 -
SOCKS5 代理:若使用 SOCKS5 协议,需确保系统已安装
nc(netcat)或socat工具。