不要问我是怎么做的,但是我设法意外地在git存储库中出现了以下远程分支:
$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/refs/heads/master
所有人都指向同一个提交。如何删除origin/refs/heads/master
不必要的商家信息?
我尝试了以下
$ git push origin :refs/heads/master
error: dst refspec refs/heads/master matches more than one.
但如图所示,这会产生错误。
答案 0 :(得分:39)
这实际上并不是遥控器上的一个分支 - 它只是一个声称代表遥控器上的东西的本地引用,就像origin / master代表遥控器上的主分支一样。 ref的全名是refs/remotes/origin/refs/heads/master
。要删除它,您只需:
git branch -r -d origin/refs/heads/master
你有可能成功地推动了这一点(但你必须努力尝试这样做)。如果你这样做,我只想列出原产地的参考:
git ls-remote origin
然后,如果那里有任何愚蠢的东西,使用git push origin :<refname>
来摆脱它。
P.S。如果这不适合您,您将需要使用git for-each-ref
查看所有裁判,并可能git ls-remote origin
查看所有远程裁判,并追踪确切地哪些东西不属于他们的完全合格的重新命名。
答案 1 :(得分:16)
解决方案是删除分支refs/heads/refs/heads/master
git push origin :refs/heads/refs/heads/master
答案 2 :(得分:4)
这是
git branch -r -d origin/ref/heads/master
而不是
git branch -r -d origin/refs/heads/master
在代码部分删除分支。代码中的ref字存在差异。