为什么我在本地看到的远程分支比我在 github 上看到的要多?

Why do I see more remote branches locally then I've got on github?

我在 github 上托管了一个 git 存储库。当我在本地执行 git branch 时,我只得到您在下面的输出中看到的三个分支:

$ git fetch
$ git branch
* develop
  kramer65/feature-branch
  master

然后我登录到 github,在那里我看到它只有 5 个分支:

所以现在我在本地做了一个 git branch -a,它显示了我的 3 个本地分支,加上大约 40 个远程分支:

然后我尝试删除其中一个远程分支,但我不能:

$ git push origin :kramer65-feature-branch
error: unable to delete 'kramer65-feature-branch': remote ref does not exist
error: failed to push some refs to 'git@github.com:MyOrganisation/therepo.git'

知道为什么我仍然看到带有 git branch -a 的这些回购协议吗?

您需要 remove 远程 no longer exist 的任何 remote-tracking 引用。

试试这个:

$ git fetch --prune
$ git branch -a

# more info
$ git fetch --help

一种可能的情况是有人为开发创建了一个分支,你 运行 a:

git fetch

将获取所有这些分支。当该功能分支被合并时,它们被删除了,git fetch 并没有删除它。你需要

git fetch -p

git fetch --prune