Over time, a remote will have branches added and deleted. Your local working snapshot can often get littered with stale, now removed branches.

To see what branches your local repo things exists you do something like this:

$ git branch -rv
> origin/1620-upgrade  2e0cc56 Ignore active local.xml from vc
> origin/HEAD          -> origin/master
> origin/cas-sso       2351be5 Add gateway logiin and logout support
> origin/giveaways   63daf5a Use cms blocks for banner placements
> origin/master        496c975 Merge affiliate module
> origin/newskin      d7220c9 Optimise skin and ui images
> origin/release       496c975 Merge affiliate module

So this is my local Magento git repository, many of the branches here are now defunct and no longer in the remote (i.e. I had previously had used $ git push origin :branch from another host)

To refresh then I need to prune my branches list. The git incantation to do this is

$ git remote prune origin
> Pruning origin
> URL: dev@vcs:git/store.git
* [pruned] origin/1620-upgrade
* [pruned] origin/giveaways
* [pruned] origin/newskin

Looking at the remote branch list again:

$ git branch -rv
> origin/HEAD    -> origin/master
> origin/cas-sso 2351be5 Add gateway logiin and logout support
> origin/master  496c975 Merge affiliate module
> origin/release 496c975 Merge affiliate module