【问题标题】:How to forcefully delete a remote branch in GitHub?如何强制删除 GitHub 中的远程分支?
【发布时间】:2012-02-03 23:12:21
【问题描述】:

我有 2 个远程分支:

 - pending-issues-in-project
 - new-issues-in-project

我试图像这样删除pending-issues-in-project
git push origin :pending-issues-in-project,但我得到了错误:

error: unable to push to unqualified destination: pending-issues-in-project
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.  
error: failed to push some refs to 'git@github.com:forkedRepo/RepoName.git'

所以我想可能是我删除了pending-issues-in-project 分支,但是当我运行时
git branch -a 它在列表中显示pending-issues-in-project 分支。
当我为new-issues-in-project 尝试相同(尝试删除)时,它起作用了。
我已经使用git branch -D branchName 从本地服务器中删除了两个分支。

如果由于存储库中不存在分支而出现错误,那么 为什么它会出现在远程分支列表中?

有没有办法强制删除远程分支?

感谢您的宝贵时间。

【问题讨论】:

  • git branch -r 带给你什么?
  • 它给出了分支列表,其中也有 origin/pending-issues-in-project,我正在尝试删除它。

标签: git github git-branch remote-branch


【解决方案1】:

您看到的分支是所谓的远程 [跟踪] 分支。它在您的 local 存储库中,它代表您在远程存储库中最后一次看到该分支的位置。 Git 使用这样的分支,这样您就不必每次想要处理它时都与远程存储库交谈;您只需更新/获取一次,远程货架分支就会更新,您可以从中工作。在您的情况下,远程存储库中的分支早已被删除;您只需要删除本地存储库中的副本。

主要有两种删除方式:

  • git branch -d -r origin/pending-issues-in-project 仅删除该分支;和
  • git remote prune origin 删除所有这些陈旧的远程分支。也可以同时更新:git remote update --prune origin

【讨论】:

    【解决方案2】:

    你必须这样做:

    git remote prune origin
    

    删除本地 git 存储库中的远程跟踪分支( prune 删除远程源中不再存在的任何分支)。之后git branch -a下就看不到了

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2017-02-12
      • 2020-02-13
      • 2011-05-08
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 2020-07-04
      • 2012-05-06
      相关资源
      最近更新 更多