Git Pull致命错误:找不到远程引用HEAD

6
这里是一个GIT新手。我正在尝试使用运行在Ubuntu 12.04 x64上的VPS作为我的开发私有仓库。所以我想试试用GIT。 我已经在远程服务器上安装了GIT并初始化了一个GIT仓库,它位于/var/www目录下。 我主要开发PHP应用程序,所以我尝试将代码设置到www目录下,这样任何提交都可以在那里进行测试,而不需要从用户文件夹中移动回www目录下。
我正在尝试从远程仓库拉取数据。 我正在使用GIT扩展来处理我的Windows计算机上的GIT需求。
然而,当我尝试从远程仓库拉取数据时,我遇到了以下错误。
C:\msysgit\cmd\git.exe pull --progress "Horizon" :refs/remotes/Horizon/master
fatal: Couldn't find remote ref HEAD
fatal: The remote end hung up unexpectedly
Done

我做错了什么,你有什么想法吗?


1
你的远程仓库里有任何提交吗?你能克隆它吗?使用 git pull Horizon 是否更好?你的客户端和服务器上的 Git 版本是多少?git remote -v 返回了什么? - VonC
请检查服务器是否中断了连接。如果是这种情况,请忽略HEAD未找到,读取远程端挂起的信息。 - Daemon Painter
2个回答

0

你需要执行 git pull Horizon master 命令。 git pull 的第二个参数是可选的,默认为 'HEAD'。错误提示说在名为 Horizon 的远程库中没有 HEAD,这是完全可能的。但从你的命令中可以看出你知道 master 分支确实存在。不必在远程库名称周围使用引号,也不必使用 ':refs/remotes/Horizon/' 前缀来指定目标分支 master(尽管我已经检查过,它是有效的)。

如果你是 Git 新手,我建议安装一个 Git GUI 工具,比如 GitExtensions。有很多选择,这只是我个人推荐的一个。


0

你的远程仓库是使用 Horizon 吗?你可以通过 git remote -v 命令来检查,如果不是,你需要使用 git remote add ... 命令将其添加到本地仓库中。请参考有关 git remote 命令的文档。

你是如何创建本地仓库的?使用了 git clone 命令吗?如果你在 ubuntu 上初始化本地仓库的方式与远程仓库相同,你需要设置 fetchpush 的 URL(设置远程仓库)。

确保以上步骤都完成后,尝试使用以下命令进行拉取:

git pull origin master

其中origin是您的远程名称,如果您将其设置为horizon,则应该是这样的

git pull horizon master

主分支是你正在工作的分支。

我没有看到任何地方像你那样指定分支,你只需要指定远程名称和分支名称,其余的由Git解决 :) 这就是它的美妙之处。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接