在我的当前回购中,我有以下输出:

$ git branch -a
* master
  remotes/origin/master
  remotes/public/master

我想从分支列表中删除remotes/public/master:

$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.

此外,gitremote的输出很奇怪,因为它没有列出public:

$ git remote show 
origin

如何从分支列表中删除“remotes/public/master”?

更新,尝试了gitpush命令:

$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

当前回答

你需要做的就是

git fetch -p

它将删除所有远程删除的本地分支。

如果您使用的是git1.8.5+,则可以自动设置

git config fetch.prune true

or

git config --global fetch.prune true

其他回答

你需要做的就是

$ git branch -rd origin/whatever 

就这么简单。这里没有理由调用gc。

当裁判被打包时,接受的答案对我不起作用。然而,这确实:

$ git remote add public http://anything.com/bogus.git
$ git remote rm public

gitgc--prune=now不是您想要的。

git remote prune public

或git remote prune origin#如果这是远程源

是你想要的

我在这里尝试了一切,但都没有成功。如果所有其他操作都失败,请从文本文件“.git/packed refs”中删除有问题的分支,然后从“.git\refs\remotes\origin<branchName>”中删除问题的分支

在我的例子中,我试图删除保存在.git/packed ref中的条目。您可以编辑此纯文本文件,并删除git br-D不知道如何触摸的条目(至少在1.7.9.5版本中)。

我在这里找到了这个解决方案:https://stackoverflow.com/a/11050880/1695680