关于git:如何删除远程origin / refs / heads / master

How to remove remote origin/refs/heads/master

不要问我是如何在Git存储库中意外获得以下远程分支的:

1
2
3
4
$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/refs/heads/master

所有这些都指向同一个提交。如何删除EDOCX1[0]不必要的列表?

我试着做以下的事情

1
2
$ git push origin :refs/heads/master
error: dst refspec refs/heads/master matches more than one.

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


这实际上不是远程上的一个分支——它只是一个本地引用,声称它代表远程上的某个内容,就像origin/master代表远程上的主分支一样。参考文件的全名是refs/remotes/origin/refs/heads/master。删除它只需要:

1
git branch -r -d origin/refs/heads/master

很可能你也成功地推动了这一点(但你必须加倍努力才能做到)。如果你这样做了,我只需要列出源代码的参考:

1
git ls-remote origin

然后,如果有什么蠢事,就用git push origin :来解决。

另外,如果这样做不适合你,你会想用git for-each-ref来查看你的所有参考文件,也可能是git ls-remote origin来查看所有的远程参考文件,并用它们的完全限定的参考名称来准确地追踪不属于哪些内容。


解决办法是删除分支refs/heads/refs/heads/master

1
git push origin :refs/heads/refs/heads/master


它是

1
git branch -r -d origin/ref/heads/master

而不是

1
git branch -r -d origin/refs/heads/master

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