title: Configuring Git on Windows to use NTLM proxy authentication
body: <p>I'm trying to access a repository on Github from a Windows machine that is behind a proxy that requires NTLM authentication. Neither SSH nor the git:// protocol are directly available, so I'm trying to make this work with HTTPS through the proxy.</p>
  
  <p>With the help of <a href="https://stackoverflow.com/questions/1276955/ntlm-proxy-without-password">NTLM proxy without password?</a> I have been able to make the <code>curl</code> binary supplied with msysgit play nice with the proxy:</p>
  
  <pre><code>curl -U : --proxy-ntlm --proxy xxx.xxx.xx.xx:8080 https://github.com
  </code></pre>
  
  <p>This is successful and returns the Github home page.</p>
  
  <p>However, I found an article from Feb 2010 <a href="http://www.patthoyts.tk/blog/proxying-git.html" rel="nofollow noreferrer">Proxying Git</a> that states (emphasis mine):</p>
  
  <blockquote>
    <p>Unfortunately it appears that curl will always use Basic authentication with the proxy. If your proxy needs something else, perhaps <strong>NTLM for a Windows network, then you have a problem</strong>. Curl is used to handle all the http transport details and this does support the NTLM authentication method but I know of no method to pass the necessary options to curl. Git makes use of curl via its library binding so it is not enought just to replace the curl executable with a wrapper script.</p>
  </blockquote>
  
  <p>I know about the <code>core.gitproxy</code> option in the Git configuration, but that appears to only apply to the git:// protocol. Similarly, the <code>http.proxy</code> option sets the address of the proxy, but provides no way to supply the appropriate options to curl.</p>