如何在GitHub中强制删除远程分支?

15

我有两个远程分支:

 - 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 给你什么信息? - Sherman Lo
它提供了分支列表,其中还包括项目中的起源/待处理问题,我正在尝试删除它们。 - Arpit Rawat
2个回答

22

你需要做以下事情:

git remote prune origin

要在本地git存储库中删除远程跟踪分支,可以使用prune命令(该命令会删除不再存在于远程源中的任何分支)。完成后,您将无法在git branch -a下看到它。


10
你看到的分支是被称为远程【跟踪】分支。它在你的本地仓库中,并代表了你上次在远程仓库中看到该分支的位置。Git使用这样的分支,这样你就不必每次想要处理它时都与远程仓库进行通信;你只需要更新/获取一次,远程跟踪分支就会更新,然后你可以从它开始工作。在你的情况下,远程仓库中的分支早已被删除;你只需要删除本地仓库中的副本。
有两种主要方法可以删除它: git branch -d -r origin/pending-issues-in-project 只删除该分支; 和 git remote prune origin 删除所有这样陈旧的远程分支。您还可以同时更新: git remote update --prune origin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接