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
-
做
git branch -r
和git checkout -b master <remotebranchofinterest>
-
检查远程.git中的
HEAD
文件。 -
检查是否有人问过这个问题:
此警告的另一个可能原因可能是存储库中的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一个现有的分支
我的情况,只有一个分支“开发”,没有主人。 所以当我试图克隆的时候,没有本地的分支去检查,只要我切换到“开发”,就能够成功地检出所有的内容。 希望这会有所帮助。