git pull 出现 from the remote, but no such ref was fetched 已解决

目录

解决办法


最近不知道做了什么操作。发现git pull 的时候报错 Your configuration specifies to merge with the ref XXXX。如下

> git pull                                                                                   
Your configuration specifies to merge with the ref 'refs/heads/some_master'            
from the remote, but no such ref was fetched. 

使用git branch -a 看不到远程分支。(本例解决办法)

>git branch -a






* some_master
(END)

按网上的说法,是本地分支和远程分支对不上了。于是我使用

vim .git/config

查看分支是否正确

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        url = git@github.com:orgName/myProject.git
        fetch = +refs/tags/v1.0-release:refs/tags/v1.0-release
[branch "some_master"]
        remote = origin
        merge = refs/heads/some_master

branch "some_master"看来,那个 分支的指向应该是没有问题的。但是看看 remote "origin" 好像有问题。

fetch = +refs/tags/v1.0-release:refs/tags/v1.0-release

应该是指向了某个tag,这个tag应该是不能获取到其他分支信息的。于是,使用下面命令

> git fetch -a # 获取所有分支信息

>git branch -a # 展示所有分支信息

更新分支信息后,结果和之前的一样。

* some_master
(END)

说明确实是 origin 指向错误。那就找到了

解决办法

把 .git/config 中的 remote "origin" 的 fetch 改成 +refs/heads/*:refs/remotes/origin/* ,如:

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        url = git@github.com:orgName/myProject.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "some_master"]
        remote = origin
        merge = refs/heads/some_master

再去 git pull 没有问题了。

此方法还能解决

fatal: bad object refs/remotes/origin/some_branch
error: github.com:orgName/myProject.git did not send all necessary objects

的问题。本质上就是无法从远程分支拉取代码。但是要注意的是,若修改成+refs/heads/*:refs/remotes/origin/* 后。git pull 命令会拉取项目下所有分支的改动信息。如果你只想拉取某一个some_branch分支,则只需改成 +refs/heads/some_branch:refs/remotes/origin/some_branch 即可。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值