I'm behind a firewall that is blocking port 9418 (git) and am trying to install some tools that are explicitly doing a checkout of git://github.com/...
, so I can't switch to https for the checkout.
So I'm wondering if it's possible to redirect all traffic to port 9418 through a proxy and if so how :)
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: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 callgit config
to set it: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
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:
or, if you have to run sshd on port 443 to get around your firewall,
Then, locally:
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.)
If you are talking about git submodules, try this:
...taken from here.
This way, you don't need to set any proxy, nor run any script.