我使用以下命令设置代理
$ git config --global git.proxy http://127.0.0.1:1080
$ git config --global http.proxy http://127.0.0.1:1080
$ git config --global https.proxy http://127.0.0.1:1080
但是当我克隆仓库时,例如
# git clone git@github.com:npm/npm.git
它不使用代理进行克隆。
我尝试更改我的代理地址,这是随机地址。
$ git config --global git.proxy asdfi:sidfw:sfd
$ git config --global http.proxy asdfi:sidfw:sfd
$ git config --global https.proxy asdfi:sidfw:sfd
如果代理正常工作,git应该提示一些错误。 但是当我再次克隆时,它没有提示任何错误
$ git clone git@github.com:s97712/protobuf.js.git
Cloning into 'protobuf.js'...
Enter passphrase for key '/home/s97712/.ssh/id_rsa':
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
Receiving objects: 2% (363/18110), 60.00 KiB | 5.00 KiB/s
这意味着git代理不起作用。
我也尝试使用环境变量
$ export http_proxy="http://localhost:1080"
$ export https_proxy="http://localhost:1080"
但是它仍然不起作用。
答案 0 :(得分:2)
git clone git@github.com:…
这是SSH协议(类似scp的URL语法),它不使用HTTP代理。要使用代理,请将URL更改为HTTPS:
git clone https://github.com:…
PS。端口1080表示它是SOCKS代理,而不是HTTP代理。如果是这样,我认为代理语法是不同的。参见https://stackoverflow.com/a/16756248/7976758和https://stackoverflow.com/search?q=%5Bgit%5D+socks+proxy。
答案 1 :(得分:0)
我通过socks5(ssh
)代理将与github.com的连接代理。
即ssh -C -D 1080 user@host -f -N
(ssh
在后台通过主机通过socks5代理,未启用默认命令和压缩功能)。我在github.com上的~/.ssh/config
如下:
Host github.com
ProxyCommand /bin/nc -X 5 -x 127.0.0.1:1080 %h %p