git Warning: remote HEAD refers to nonexistent ref, unable to checkout
Asked Answered
S

7

41

I'm trying to setup gitosis according to the instructions here.

It works fine from my remote machine so the server seems to be setup fine but I'd also like to be able to do development on my gitosis server machine from a different user account (not the git user created in the gitosis setup).

I've copied the key and modified the gitosis.conf so that the other user account has access but when I try to clone it seems to work except at the end it says:

git Warning: remote HEAD refers to nonexistent ref, unable to checkout

and I end up with an empty directory except for .git

I've google for this a bit but have no real insight into what the problem is

Suiting answered 25/12, 2009 at 14:51 Comment(1)
For those who ran into this problem with GitHub and took the first Hit on Google, see #1486078 and help.github.com/articles/…Palpitant
S
25

I found out what was going wrong. The problem was that I wasn't paying attention to the warnings when I was pushing to my gitosis server so I didn't realize that I wasn't pushing a particular branch. I had assumed it would just push the current but that isn't the case until you set:

git config push.default current
Suiting answered 25/12, 2009 at 23:29 Comment(2)
This is the post that tipped me off to it: #1475968 and the fact that when I did git branch -r based on Michael Krelin's answer and got nothing back.Suiting
Thanks for this post. I guess the part I am not understanding is where you are when you are doing this. I get the head error as well but I am not sure where you doing the git config push.default currentCopp
C
22
  1. Do the git branch -r and git checkout -b master <remotebranchofinterest>

  2. Check the HEAD file in remote .git.

  3. Check if somebody already asked the question: here

Convalescence answered 25/12, 2009 at 14:55 Comment(0)
W
18

One more possible cause for this warning might be that the master branch in the repository is missing (OR) the repository does NOT use a master branch. If this is the case, just don't worry about the Warning!, use

git checkout <some_existing_branch>

The warning is because, by default, after the pull git tries to checkout into the master branch.

Wentletrap answered 21/8, 2012 at 12:53 Comment(1)
This is a problem for me right now. If you're using pip to install Python packages from git, it seems git tries to checkout master first, then switches to whatever branch or commit you ask it to. The first step will fail if you don't have master in the repo.Agree
O
2

Had a similar problem. It seems that on my first push I did git push origin master:/refs/heads/master instead of git push origin master:refs/heads/master (notice the extra slash). This caused my master to be placed (in the remote repository) at refs/heads/refs/heads/master instead of refs/heads/master. The fix was to reorganize the folders on remote and re-push.

Optometrist answered 1/7, 2011 at 7:21 Comment(0)
A
1

Keep it simple. Add to gitosis authorization and SSH key for the user account on your server and clone as usual:

user@server$ git clone git@server:repo.git
Acidulous answered 25/12, 2009 at 15:14 Comment(1)
That's exactly what I did and that resulted in the error message. Access appears to be fine based on the git output (I enabled debugging to give me more insight).Suiting
O
0

If you are trying to clone over http:// note that you need a git newer than 1.6.6 - otherwise you should use a git:// based URI.

Outgrow answered 27/3, 2012 at 11:16 Comment(0)
L
0

I use tortoiseGit and I'm not aware of how to use git via the command line. So I always wonder how I can avoid such problem in my tortoise. So maybe I am not alone. I fixed the problem this way:

  • clone the remote repo
  • right click on the root folder and from there choose an existing branch

Im my case, there was only a branch "dev", without master. So when I tried to clone there was no local branch to check out and as soon as I switched to "dev" it was able to check out all the content successfully. Hope that will be helpful.

Luddite answered 18/9, 2013 at 19:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.