当我
git branch -a | grep my_funny_branch
它给
remotes/origin/my_funny_branch
但是当我
git branch -d -r origin/my_funny_branch
它给
error: remote branch 'origin/my_funny_branch' not found
当我只是
git pull origin master
我明白了
git pull origin master
From ssh://example.com/foo/bar
* branch master -> FETCH_HEAD
Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
error: bad ref for refs/remotes/origin/my_funny_branch
error: bad ref for refs/remotes/origin/my_funny_branch
Counting objects: 47339, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (16489/16489), done.
Writing objects: 100% (47339/47339), done.
Total 47339 (delta 30622), reused 47339 (delta 30622)
Rename from '.git/objects/pack/.tmp-7576-pack-15e7c5d209199f384b04dd820a8d625c658f7402.pack' to '.git/objects/pack/pack-15e7c5d209199f384b04dd820a8d625c658f7402.pack' failed. Should I try again? (y/n)
Run Code Online (Sandbox Code Playgroud)
如何删除该远程分支?
谢谢!
Ric*_*sen 13
此错误消息很有趣:
error: bad ref for refs/remotes/origin/my_funny_branch
Run Code Online (Sandbox Code Playgroud)
查看Git源代码,当Git处理该ref的reflog时会出现该消息.日志可能会以某种方式被破坏,从而阻止ref上的各种操作成功完成.
备份后,尝试删除该ref的日志:
rm -rf .git/logs/refs/remotes/origin/my_funny_branch
Run Code Online (Sandbox Code Playgroud)
然后看看你是否可以删除分支.
小智 7
我遇到了这个问题。我的解决方案如下:
git remote prune origin
Run Code Online (Sandbox Code Playgroud)
进而
git fetch --prune
Run Code Online (Sandbox Code Playgroud)
最终得到了大约 20 个幽灵分支的列表,这些分支被修剪成了真正的活分支