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

Pet*_*mit 18 git remote-branch

不要问我怎么做,但我设法在git存储库中偶然发现了以下远程分支:

$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/refs/heads/master
Run Code Online (Sandbox Code Playgroud)

所有人都指向同一个提交.如何删除不必要的列表 origin/refs/heads/master

我试着做以下事情

$ git push origin :refs/heads/master
error: dst refspec refs/heads/master matches more than one.
Run Code Online (Sandbox Code Playgroud)

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

Cas*_*bel 40

这实际上并不是遥控器上的一个分支 - 它只是一个声称代表遥控器上某些东西的本地引用,就像origin/master代表遥控器上的主分支一样.ref的全名是refs/remotes/origin/refs/heads/master.要删除它,您只需:

git branch -r -d origin/refs/heads/master
Run Code Online (Sandbox Code Playgroud)

很可能你也设法推动了这一点(但是你必须努力尝试这样做).如果你这样做,我只需列出原产地的参考:

git ls-remote origin
Run Code Online (Sandbox Code Playgroud)

然后,如果那里有任何愚蠢的东西,用git push origin :<refname>它来摆脱它.

PS如果这不适合你,你会想要git for-each-ref看到你所有的参考,并可能git ls-remote origin看到所有的远程参考,并准确地追踪到哪些东西不属于他们的完全合格refnames.


Pet*_*mit 17

解决方案是删除分支 refs/heads/refs/heads/master

git push origin :refs/heads/refs/heads/master
Run Code Online (Sandbox Code Playgroud)


小智 5

它是

git branch -r -d origin/ref/heads/master
Run Code Online (Sandbox Code Playgroud)

代替

git branch -r -d origin/refs/heads/master 
Run Code Online (Sandbox Code Playgroud)

在代码部分删除分支。代码中的引用字存在差异。