Removing git branches from local repository

Problem

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
branch_to_delete
remotes/origin/branch_to_delete

Solution

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

Pushing and getting the tags from a remote git repository

Problem

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.

Solution

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].

and:

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.