git:// through proxy

假如想象 提交于 2019-11-28 15:21:07

Have a look at core.gitproxy setting in Git config.

Quick googling revealed this script that may be useful (or may not — I did not try it): https://gist.github.com/49288

If you are talking about git submodules, try this:

git config --global url.https://github.com/.insteadOf git://github.com/

...taken from here.

This way, you don't need to set any proxy, nor run any script.

Have you tried an ssh-based TCP tunnel? If you have an ssh server that (a) is outside your firewall and (b) allows IP forwarding, you can do:

ssh -L localhost:9418:<remote>:9418 me@remote-ssh-server

or, if you have to run sshd on port 443 to get around your firewall,

ssh -P 443 -L localhost:9418:<remote-host>:9418 me@remote-ssh-server

Then, locally:

git checkout git://localhost/...

Obviously this isn't transparent, and it's a little convoluted - there are no doubt tools out there that are more specifically targetted at the problem. However, I typically use this method because it uses tools I have to hand (ssh and a cheapo virtual server I rent).

(I've actually never tried this with a git connection, but I see no reason why it wouldn't work. I've used it with many other single-TCP-port protocols without problem.)

You need to make core.gitProxy point to a proxy command that will connect git to the remote server through your SOCKS proxy. You can create a script with the following content to serve as a proxy command:

nc -x <your_proxy_host>:<your_proxy_port> $1 $2

The two parameters, representing the remote host and port, will be passed to the proxy command by git. If you name this script git-proxy and make it accessible from your $PATH, you can call git config to set it:

git config --global --add core.gitProxy git-proxy
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!