如何删除远程origin / refs / heads / master

时间:2011-02-03 19:34:32

标签: git remote-branch

不要问我是怎么做的,但是我设法意外地在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.

但如图所示,这会产生错误。

3 个答案:

答案 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字存在差异。