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.

  • Can Git restructure my folders without losing history?
  • Are GIT refs always case insensitive?
  • Git remove --cached by TortoiseGit
  • Setup Git-server on windows computer
  • Git log error in PhpUnderControl continuous integration set up
  • git refname 'origin/master' is ambiguous
  • 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.

  • How do you set the 16 Terminal Colors for Git-Bash?
  • Names starting with underscore shows errors Page doesnot exists for gh-pages branch
  • git alias: multiple commands, variadic parameters
  • Git between multiple projects
  • Git push reminder/helper?
  • Create User & Access Rules Github for Windows
  • 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.