git警告:远程HEAD引用不存在的裁判,无法结帐

我试图根据这里的指示设置gitosis。

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

我已经复制了密钥,并修改了gitosis.conf,以便其他用户帐户有权访问,但是当我尝试克隆它似乎工作,除了最后它说:

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

最后我得到一个空的目录,除了.git

我已经谷歌这一点,但没有真正的洞察到问题是什么

我发现哪里出了问题。 问题是,当我推送到我的gitosis服务器时,我没有注意到警告,所以我没有意识到我没有推特别的分支。 我曾经以为它会推动当前,但事实并非如此,直到你设定:

 git config push.default current 
  1. git branch -rgit checkout -b master <remotebranchofinterest>

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

  3. 检查是否有人问过这个问题:

此警告的另一个可能原因可能是存储库中的master分支丢失(OR)存储库不使用主分支。 如果是这种情况,请不要担心Warning !,请使用

 git checkout <some_existing_branch> 

这个警告是因为在默认情况下,在pull git试图签出master分支之后。

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

把事情简单化。 添加到您的服务器上的用户帐户的gitosis授权和SSH密钥,并照常克隆:

 user@server$ git clone git@server:repo.git 

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

我使用tortoiseGit,我不知道如何通过命令行使用git。 所以我总是想知道如何在我的龟身上避免这个问题。 所以也许我并不孤单。 我这样解决了这个问题:

  • 克隆远程回购
  • 右键单击根文件夹,然后从那里select一个现有的分支

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