Visual Studio continues to show any branch I\'ve pulled, even after that branch has been deleted (and I do not have it as the selected branch).
git fetch -
prune
is about removing any remote-tracking references that no longer exist on the remote.
So if the branch still exists on the remote side, it won't be deleted locally.
If the branch is deleted locally (with Visual Studio), its remote tracking instance will still be re-created at the next push.
You need to make sure the branch is also deleted on the remote side:
git push origin --delete abranch