Using a socks proxy with git for the http transport

Yves Blusseau picture Yves Blusseau · Mar 5, 2013 · Viewed 66.3k times · Source

How to make git use a socks proxy for HTTP transport?

I succeed in configuring git with GIT_PROXY_COMMAND to use a socks proxy for GIT transport.

Also, I have configured my .curlrc file to defined the socks proxy and I can fetch information directly with curl command like:

curl http://git.kernel.org/pub/scm/git/git.git/info/refs?service=git-upload-pack

But how to use a socks proxy with git to retrieve data using the HTTP transport protocol like:

git clone http://git.kernel.org/pub/scm/git

Answer

Yang.Y picture Yang.Y · May 26, 2013

I tested with Git 1.8.2 and SOCKS v5 proxy, following setting works for me:

git config --global http.proxy 'socks5://127.0.0.1:7070'

UPDATE 2017-3-31:

According to the document, despite the name http.proxy, it should work for both HTTP and HTTPS repository urls. Thanks @user for pointing out this.

UPDATE 2018-11-27:

To disable the proxy, run command:

git config --global --unset http.proxy

EDIT 2019-03-04:

If you also want the host name to be resolved using the proxy, use thuzhf's solution below, which uses socks5h instead of socks5