【问题标题】:git pull error Could't find remote ref mastergit pull 错误找不到远程参考主机
【发布时间】:2015-03-07 16:04:38
【问题描述】:

我在我的服务器上创建了一个具有 http 访问权限的裸 git 存储库。在我使用的客户端上:

git init
git clone <URL>
touch 2.txt
git commit
git remote add origin <URL>
git push origin master

所有这些命令都可以正常工作。然后我想看看我的存储库是否有“2.txt” 我来自我使用的其他机器:

git init
git clone <URL>
git remote add origin <URL>
git pull origin master 

我得到了:

Could't find remote ref master
Unexpected end of command stream

我尝试了其他变体:

git pull

我得到了:

Your configuration specifies to merge with the ref 'master' 
from the remote, but no such ref was fetched

我认为,问题是我在服务器上没有任何分支。我试图在服务器上创建分支主控,但什么也没有(mb coz 那是裸存储库) 我使用该指南创建对存储库的 http 访问: https://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server-over-http.txt 我完成了步骤 1-2,然后开始在没有指导的情况下进行操作。 我想我错过了一些东西,我最初的推送是错误的,因为它没有创建一个分支,但我不知道如何处理它。 我是 git 新手,我真的希望你能帮助我。

【问题讨论】:

  • 你不需要在git clone之前运行git init。事实上,这几乎肯定会给你带来麻烦,因为你会得到“嵌套存储库”。
  • 我很确定您的git push origin master 失败了。
  • git clone &lt;URL&gt; 一个人就够了。它将初始化、添加远程以及从远程拉取。
  • 如果您克隆一个存储库,它会自动将其分配为新存储库中的origin,因此您也不需要add remote 命令。不过我不确定它会导致这个问题。
  • 你没有告诉我们一切。您的第一段代码不应该正常工作。请参阅下面的答案。

标签: git


【解决方案1】:

你是对的,你的遥控器没有分支'master'

当您开始处理新的 repo 时,请确保您有一个 master 分支。你可以这样做

git checkout -b master

在您现有的存储库中执行此操作并再次推送。然后它应该按预期克隆。

【讨论】:

  • 不需要这个命令。在一个全新的 repo 中,master 分支将在第一次提交时创建。
  • 你一定是做错了什么。初始化存储库后,您永远不需要显式创建 master 分支;它在创建第一个提交时自动生成。亲自尝试一下:mkdir testgit || cd testgitgit inittouch test.txtgit add test.txtgit commit -m "initial commit"git branch
  • 我知道这不是预期的行为,它发生在我在服务器上启动(裸)repo 并克隆它时(带来一条消息,例如“看起来你已经克隆了一个empty repo") 在我的本地机器上并推送到它。当我忘记先结帐大师时,我总是收到与 OP 相同的消息。无论如何 - 某事。出错了,明确地检查主人并推动它为我解决了这个问题。
【解决方案2】:

您只需从第二台机器运行以下命令

git clone "your git-URL"

您将获得带有 2.txt 文件的 git 存储库。

【讨论】:

  • 不。根据 OP 的第一个命令块,2.txt 从未上演,因此从未进入任何提交。
猜你喜欢
  • 2014-08-18
  • 2012-08-01
  • 2012-07-18
  • 1970-01-01
  • 2012-12-12
  • 2021-07-16
  • 2012-04-21
  • 2012-10-08
  • 2014-07-29
相关资源
最近更新 更多