【问题标题】:git Warning: remote HEAD refers to nonexistent ref, unable to checkoutgit 警告:远程 HEAD 引用不存在的 ref,无法结帐
【发布时间】:2010-12-29 23:55:05
【问题描述】:

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

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

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

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

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

我在谷歌上搜索了一下,但对问题所在并没有真正的了解

【问题讨论】:

标签: git gitosis


【解决方案1】:
  1. 执行git branch -rgit checkout -b master <remotebranchofinterest>

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这正是我所做的,这导致了错误消息。根据 git 输出,访问似乎很好(我启用了调试以提供更多洞察力)。
    【解决方案3】:

    我发现出了什么问题。问题是当我推送到我的 gitosis 服务器时我没有注意警告,所以我没有意识到我没有推送特定的分支。我以为它只会推动电流,但在您设置之前并非如此:

    git config push.default current
    

    【讨论】:

    • 这是给我提示的帖子:stackoverflow.com/questions/1475468/… 以及当我根据 Michael Krelin 的回答执行 git branch -r 并没有得到任何回报的事实。
    • 谢谢。我遇到了同样的问题。
    • 感谢这篇文章。我想我不理解的部分是当你这样做时你在哪里。我也得到了头部错误,但我不确定你在哪里做 git config push.default current
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        git checkout <some_existing_branch>
        

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

        【讨论】:

        • 这对我来说是个问题。如果您使用 pip 从 git 安装 Python 包,似乎 git 会先尝试签出 master,然后切换到您要求的任何分支或提交。如果您在 repo 中没有 master,第一步将失败。
        【解决方案7】:

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

        • 克隆远程仓库
        • 右键单击根文件夹并从那里选择现有分支

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-07
          • 1970-01-01
          • 2012-01-14
          • 2016-12-27
          • 2020-01-16
          • 1970-01-01
          • 2018-01-30
          • 1970-01-01
          相关资源
          最近更新 更多