我得到这个错误拉:
您的配置指定与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
现在这是一个更常见的错误,因为许多项目正在将他们的主分支转移到另一个名称,如主、主、默认、根、引用、最新等,正如Github计划取代“主”和“白名单”等种族不敏感的术语。
要修复它,首先要找出项目现在使用的是什么,你可以通过他们的github, gitlab或其他git服务器找到。
然后这样做来捕获当前配置:
$ git branch -vv
...
* master 968695b [origin/master] Track which contest a ballot was sampled for (#629)
...
找到描述主分支的行,并注意远程回购是否被称为origin、upstream或其他名称。
然后使用这些信息,将分支名称更改为新的分支名称,例如,如果它说你当前正在跟踪origin/master,则替换为main:
git branch master --set-upstream-to origin/main
你也可以重命名你自己的分支,以避免未来的混乱:
git branch -m main
我刚刚经历了“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”等)。