我得到这个错误拉:

您的配置指定与ref合并 'refs/heads/feature/Sprint4/ABC-123-Branch',但没有 这样的裁判是拿来的。

这个错误不会出现在任何其他分支上。这个分支的特殊之处在于,它是从另一个分支的上一次提交中创建的。 我的配置文件如下:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[remote "origin"]
    url = <url here>
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "new-develop"]
    remote = origin
    merge = refs/heads/new-develop
[branch "feature/Sprint4/ABC-123-Branch"]
    remote = origin
    merge = refs/heads/feature/Sprint4/ABC-123-Branch

当前回答

我得到了这个确切的错误,但没有一个建议的答案(可能是大小写敏感)是问题。它们可能适用于99%的问题,但还剩下1%。

事实证明,混合使用WSL / Linux文件共享和Windows基目录是问题所在。我正在运行WSL (Ubuntu 20.04),并有一个从Windows访问/编辑的repo,但代码是在WSL上运行的。我可能已经从WSL方面做了一些git状态检查。

回购是存在的,案例是正确的,互联网工作正常,没有一个分支被删除,等等。然而,我也得到了错误,你的配置指定从远程合并,但没有这样的参考。

我的修复是,是确保所有的项目都被推送/所有的更改都被记录,然后我只是删除了目录,并再次从Windows中做了一个“git克隆”。然后'git checkout'就可以正常工作了。我知道这不是一个真正的答案,但它确实起作用了。

我在做Linux开发,代码库可以自动执行某些操作,包括“git克隆”;然而,我通常在Windows上进行代码推送。我的猜测是。git文件夹不是跨平台兼容的(并不是我有任何期望)。然而,它通常是有效的。是bug吗?争议。

Git偶尔也会试图做一个漂亮的和蒙面的行尾;这是一个不同的问题(与宗教相近)。我是不可知论者。是的,有一个设定。)

其他回答

检查大小写敏感性

在我的例子中,我的分支名称(remote)使用大写字母,例如:BranchName。 意外地,我在本地机器上创建了一个分支branchname(全部小写),并将上游设置为相同,然后出现了这个错误。

解决方案: 我删除了本地存储库,再次克隆它,并签出到BranchName

我只是得到了同样的错误,当我没有使用正确的情况。 我可以签出'integration'。Git告诉我执行Git拉来更新我的分支。我这样做了,但收到了提到的错误。 正确的分支名称是“Integration”加上大写的“I”。 当我检查并拉动那根树枝时,它没有问题。

我刚刚经历了“no such ref was fetch”的问题,以上建议都没有帮助。我解决这个问题的方法是改变我的本地配置

remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

to

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*

我不知道为什么会起作用,但确实起了作用。经过这个改变,我可以拉,得到我所期望的。

如果我把它改回来,我在试图拉的时候再次得到“no such ref was fetch”。所以这绝对是修复(不是蹩脚的互联网,或情况差异,或全驱动器,或删除远程分支,或默认分支不命名为“master”等)。

对我来说,这是因为我合并了一个分支开发到主使用web界面,然后尝试同步/拉使用VSCode在开发分支上打开。(这很奇怪,我不能改变到master没有得到这个错误。)

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

这是有意义的,没有找到它refs/heads/dev -对我来说,它更容易删除本地文件夹,并再次克隆。

当源分支名称有大小写问题时,也会收到此错误。

例如:原点分支是team1-Team,本地分支已经签出为team1-Team。那么,这个T in -Team和T in -Team会导致这样的错误。我的情况就是这样。因此,通过用起源分支的名称更改本地名称,错误就得到了解决。