2009-12-25 20 views
39

我试图按照说明here设置gitosis。git警告:远程HEAD是指不存在的参考,无法结帐

它从我的远程机器正常工作,所以服务器似乎设置正常,但我也想能够从我的gitosis服务器机器上从不同的用户帐户开发(而不是在gitosis中创建的git用户建立)。

我已经复制键和修改gitosis.conf的,这样其他用户帐户可以访问,但是当我尝试克隆它似乎除了在最后它说的工作:

​​

和我最终与除git的

一个空目录,我已经对谷歌这一点,但没有真正的见识到了什么问题

+0

对于那些使用GitHub遇到这个问题并在Google上首次使用Hit的人,请参阅http://stackoverflow.com/questions/1485578/how-do-i-change-a-git-remote-head-to点到东西除了主和https://help.github.com/articles/error-remote-head-refers-to-nonexistent-ref-unable-to-checkout – Tino 2012-07-01 13:21:02

回答

25

我发现出了什么问题。问题是,当我推送到我的gitosis服务器时,我没有注意到警告,所以我没有意识到我没有推动某个分支。我以为它只是推动当前,但事实并非如此,直到你设置:

git config push.default current 
+0

这是一篇让我想起它的文章:http://stackoverflow.com/questions/1475468/git-push-failed-you-did-not-specify-any-refspecs-to-push以及事实我根据Michael Krelin的回答做了git分支-r,并没有得到任何回报。 – srboisvert 2009-12-25 23:30:49

+0

感谢您的支持。我遇到了同样的问题。 – Dilawar 2011-12-14 18:14:23

+0

非常感谢。 – 2012-05-21 09:00:12

21
  1. git branch -rgit checkout -b master <remotebranchofinterest>

  2. 检查远程.git文件中的HEAD文件。

  3. 检查一下是否有人已经提出这样的问题:here

1

保持简单。添加到您的服务器上的用户帐户的gitosis授权和SSH密钥,并像往常一样克隆:

[email protected]$ git clone [email protected]:repo.git 
+0

这正是我所做的和那导致错误消息。基于git输出的访问似乎很好(我启用了调试以提供更多信息)。 – srboisvert 2009-12-25 21:57:20

2

有一个类似的问题。看来,在我第一次推我做git push origin master:/refs/heads/master而不是git push origin master:refs/heads/master(注意额外的斜线)。这导致我的主人被置于(在远程仓库中)refs/heads/refs/heads/master而不是refs/heads/master。解决方法是重新组织远程文件夹并重新推送。

0

如果您试图克隆http://请注意,您需要比1.6.6更新的git - 否则您应该使用基于git://的URI。

18

此警告的另一个可能原因可能是存储库中的master分支缺失(OR)存储库不使用主分支。如果是这样的话,就不用担心了!警告使用

git checkout <some_existing_branch> 

该警告是因为,在获取Git试图检出到主分支在默认情况下,后。

+1

这对我来说是一个问题。如果您使用pip从git安装Python包,似乎git会先尝试检出master,然后切换到您要求的任何分支或提交。如果您在回购中没有主人,则第一步将失败。 – tobych 2013-01-24 22:02:45

0

我使用tortoiseGit,我不知道如何通过命令行使用git。所以我总是想知道如何在我的乌龟中避免这样的问题。所以也许我并不孤单。我固定的问题是这样的:

  • 克隆远程回购
  • 右键单击根文件夹,并从中选择一个现有的分支

林我的情况下,只有一个分支“开发“,没有主人。所以当我尝试克隆时,没有本地分支可以检出,只要我切换到“dev”,就能够成功检出所有内容。希望这会有所帮助。

相关问题