【问题标题】:How to remove remote origin/refs/heads/master如何删除远程源/refs/heads/master
【发布时间】:2011-06-20 22:02:25
【问题描述】:

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

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

【问题讨论】:

    标签: git remote-branch


    【解决方案1】:

    这是

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

    而不是

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

    在代码部分删除分支。代码中的 ref word 存在差异。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这实际上不是远程上的分支 - 它只是一个本地引用,声称代表远程上的某些东西,就像 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> 来摆脱它。

        附:如果这对您不起作用,您将需要使用 git for-each-ref 来查看您的所有 refs,并可能使用 git ls-remote origin 来查看所有远程的,并跟踪 准确 哪些东西不属于,以及它们的完全限定的引用名。

        【讨论】:

        • 嗯,原来是 origin/refs/heads/refs/heads/master 我用git push origin :refs/heads/refs/heads/master删除了它
        • @Peter:嗯,这就是我在第一段中的猜测。您设法将其放入遥控器中,这给我留下了深刻的印象;我花了一点时间才弄清楚自己该怎么做!很高兴你把它整理好了。
        猜你喜欢
        • 2019-07-16
        • 2018-12-25
        • 1970-01-01
        • 2012-06-29
        • 2019-10-26
        • 1970-01-01
        • 1970-01-01
        • 2022-10-24
        相关资源
        最近更新 更多