You would like to remove your local branches that were used to track remote branches that no longer exists (deleted after merge).
git branch -a
To delete your local branch you could use the following:
git branch -D branch_to_delete
And to to delete the remote tracking branching you could use the following:
git branch -rd origin/branch_to_delete
You want to tag your branches in a remote repository and share the tags with other users, but usually the git pull and git push do not update the tags.
According to the git documentation:
By default, the git push command doesn’t transfer tags to remote
servers. You will have to explicitly push tags to a shared server
after you have created them. This process is just like sharing remote
branches — you can run git push origin [tagname].
If you have a lot of tags that you want to push up at once,
you can also use the --tags option to the git push command.
This will transfer all of your tags to the remote server that
are not already there.
But when doing either a git pull origin [repo] or git fetch origin [repo] the tag list does not seem to be updated.
In this case try the following:
git pull origin [repo] --tags
And the list should contain all the tags in the remote repository.