git behind proxy: remote HEAD refers to nonexistent ref, unable to checkout

When trying to clone ANY repository via https from github, we get:

git clone https://github.com/rails/rails.git
Cloning into rails...
remote HEAD refers to nonexistent ref, unable to checkout

Our server is behind a proxy. We have defined http_proxy and https_proxy appropriately. All other functions are working.

git version is 1.7.5.4

Server is Ubuntu Server 11.04.

Note that since this happens with EVERY github repository we’ve tried, we strongly believe it’s not a problem with the refs in the repository. We’ve tried such well-known repositories as jquery and rails – if the problem were in those repositories there’d be a lot of people complaining. I believe strongly the problem is with git and the proxy, but all my googling has not lead to a solution.

As an additional data point, clones seem to work fine if they’re http. It’s only the https clones that fail with this error.

Note that I don’t think this question is a duplicate, since the other questions with this error focus on problems with the repository – not working with git and a proxy.

  • View markdown files offline
  • Git - Use port 9418 for remote on github
  • Can't push to github with working ssh-key
  • What's the right way to commit git changes
  • Getting local gerrit and repository working (including branches) based on a github project
  • Safe way to work in Git
  • How does git log work across branches?
  • Mylyn commit default message missing
  • 4 Solutions collect form web for “git behind proxy: remote HEAD refers to nonexistent ref, unable to checkout”

    I’ve stumbled across the solution to this problem via this post:

    http://comments.gmane.org/gmane.comp.version-control.git/185459

    The issue is apparently a bug in the libcurl version installed in Ubuntu server 11.04. Simply running apt-get install libcurl3-gnutls was not sufficient to solve the problem since it simply reported the latest version was already installed.

    To solve the problem, I had to manually install the latest libcurl3-gnutls, and two dependencies, as seen below (obviously, after having downloaded them to my system first):

    sudo dpkg -i libp11-kit0_0.6-0ubuntu2_amd64.deb
    sudo dpkg -i libgnutls26_2.12.14-3_amd64.deb
    sudo dpkg -i libcurl3-gnutls_7.22.0-3ubuntu1_amd64.deb
    

    Hope this helps someone.

    the packages noted above can be found here:

    I used these versions and was able to use git behind a proxy without issue:

    $ sudo dpkg -i libp11-kit0_0.10-1_amd64.deb libgnutls26_2.12.14-5ubuntu2_amd64.deb libcurl3-gnutls_7.22.0-3ubuntu2_amd64.deb
    

    A workaround found at the linked Ubuntu bug:

    add the following to ~/.gitconfig or /etc/gitconfig

    # Workaround for bug when using SSL and HTTP proxy (LP #940431)
    [url "http://"]
     insteadOf = "https://"
    

    No longer necessary starting with 12.04.

    Another simple solution would be:

    regressing libcurl3 from 7.21.0 to 7.19.5.

    Download it from here:

    amd64:
    http://launchpadlibrarian.net/30289951/libcurl3-gnutls_7.19.5-1ubuntu2_amd64.deb

    i386:
    http://launchpadlibrarian.net/30287711/libcurl3-gnutls_7.19.5-1ubuntu2_i386.deb

    Git Baby is a git and github fan, let's start git clone.