Pushing all Git branches

To push all your branches, use either (replace REMOTE with the name of the remote, for example "origin"):

git push REMOTE '*:*'  
1

Or

git push REMOTE --all  
1

However --all only works with branches checked out so will require preceeding with:

for remote in `git branch -r | grep -v master `; do git checkout --track $remote ; done  
1

Tags are pushed separately:

git push REMOTE --tags  
1

more here.