git警告:远程HEAD是指不存在的ref,无法结帐

时间:2009-12-25 14:51:10

标签: git gitosis

我正在尝试根据说明here设置gitosis。

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

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

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

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

我已经谷歌这一点,但没有真正了解问题是什么

7 个答案:

答案 0 :(得分:25)

我发现了什么问题。问题是当我向我的gitosis服务器推送时我没有注意警告,所以我没有意识到我没有推动某个特定的分支。我曾经假设它会推动当前但是在你设置之前情况并非如此:

git config push.default current

答案 1 :(得分:21)

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

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

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

答案 2 :(得分:18)

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

git checkout <some_existing_branch>

警告是因为,默认情况下,在pull git尝试签出到主分支之后。

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

  • 克隆远程仓库
  • 右键单击根文件夹,然后从中选择现有分支

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