git pull from remote但没有获取这样的参考?


69

我的磁盘上有一个git镜像,当我想用​​git pull更新我的仓库时,它给我错误信息:

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

它还给了我:

  1ce6dac..a5ab7de  3.4/bfq    -> origin/3.4/bfq
  fa52ab1..f5d387e  3.4/master -> origin/3.4/master
  398cc33..1c3000a  3.4/upstream-updates -> origin/3.4/upstream-updates
  d01630e..6b612f7  3.7/master -> origin/3.7/master
  491e78a..f49f47f  3.7/misc   -> origin/3.7/misc
  5b7be63..356d8c6  3.7/upstream-updates -> origin/3.7/upstream-updates
  636753a..027c1f3  3.8/master -> origin/3.8/master
  b8e524c..cfcf7b5  3.8/misc   -> origin/3.8/misc
  * [neuer Zweig]     3.8/upstream-updates -> origin/3.8/upstream-updates

当我运行make menuconfig时,它给我的Linux版本是3.5.7?这是什么意思?如何更新我的仓库?

Answers:


58

检查您所在的分支(git branch),检查该分支的配置(中的.../.git/config),您可能在错误的分支上,或者您的配置告诉它与一个(现在?)不存在的远程分支合并。


22
要删除本地存储库中不存在的远程分支引用,请使用git remote prune origin
jevon 2014年

7
为分支机构“检查配置”的另一种方法是:git branch -vv。这将显示分支的关联“远程”。
2014年

28

就我而言,我的本地分支未设置为跟踪远程分支。我不得不手动运行:

git pull origin remotebranch

然后,下次您执行一次推送时,请执行“ git push -u”以设置正确的跟踪。


当您第一次克隆一个空的git init --bare
仓库,

10

就我而言,我的本地分支机构和远程分支机构的大小写不同。

为了解决这个问题,我删除了本地分支$ git branch -d branch-name,然后使用$ git fetch和再次签出远程分支$ git checkout Branch-name


它干净,简单且工作正常。谢谢。
Balasubramani M

我在cmd行中收到此错误。尝试对SmartGit进行重新设置,并克服了它。
P.Brian.Mackey

一次执行此操作,而不是每次删除分支并重新检出分支:在/.git/config中更正大写字母
wz366 '18

2

您团队中的其他人可能只是合并了您的分支并将其删除(通常在合并后完成)。您可以在仓库上创建分支,然后重试。我偶尔会在公司发生这种情况(bitbucket默认会合并和删除)。


1

就我而言(通常需要注意),我已经有一个适当名称的分支,因此只需要添加remote = origin到我的.git / config中:

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added



0

由于Windows上出现的大小写问题,我遇到了这个问题。

我的Git配置看起来像:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/Bug/some_branch

在服务器上,“错误”和“错误”都作为多个分支的一部分存在。由于文件系统映射,Windows一次只能容纳其中之一。因此,我手动更新了配置以匹配服务器版本,这实际上解决了拉动问题:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch

0

如果分支不见了

$ git status
On branch blah_gone_now
Your branch is based on 'origin/1234/blah_gone_now', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

$ git branch --unset-upstream

然后结帐大师或您需要的任何东西

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.