【发布时间】:2012-10-03 16:02:31
【问题描述】:
我不小心创建了一个分支并将其推送到原点。我从另一个分支创建它,但没有提交任何更改,因此它应该与原始分支“相同”。
我想删除分支,所以我先在本地删除它:
git branch -d <branch_name>
然后我想从远程位置删除:
git push origin :<branch_name>
但这给了我错误:
错误:无法推送到不合格的目的地: 目标 refspec 既不匹配远程上的现有 ref,也不匹配 以 refs/ 开头,我们无法根据 来源参考。致命:远端意外挂断
我在 StackOverflow 的另一个线程 (Cannot delete a remote branch created unintentionally) 和其他网站 (git: prune to remove old remote tracking branches) 上找到了有关此错误的信息,但他们提出的解决方案是:
git remote prune origin
对我不起作用。修剪命令正确退出,但是当我git branch -r 或git branch -a 时,我仍然看到分支。
我也尝试过git remote update 和git fetch,但这并没有改变任何东西。
如何从分支列表中删除这个分支?
【问题讨论】:
-
git remote prune只会在从远程存储库中删除分支后清理您的本地引用。git ls-remote origin是否显示分支仍然存在?如果是这样,并且git push origin :<branch_name>没有删除它,我会尝试使用完全限定的路径名:git push origin :refs/heads/<branch-name>。您应该在git ls-remote的输出中看到完全限定名称。只需复制并粘贴即可。 -
谢谢@jszakmeister!请参阅我对 poke 答案的评论。
标签: git