Como clonar todos os branches e tags entre repositórios git remotos

Precisa mover de um remoto git local (ou seja, Atlassian Stash) para outro lugar? Gosta do BitBucket ou do GitHub? Esta é uma maneira de obter todos os branches e tags de recursos, não apenas aqueles que você já transferiu localmente.

# Clone a temporary copy of your repo
cd
/tmp
git clone ssh
://git@yourrepohost/yourrepo.git
cd yourrepo


# Start tracking all the remote branches locally
for remote in `git branch -r | grep -v '->'`; do git branch --track $remote; done

# Remove your old origin
git remote rm origin


# Add your new remote
git remote
add origin ssh://git@newrepohost/yourrepo.git

# Now push it up to the new host
git push
-u --all origin

E pronto.

Dica de chapéu para http://stackoverflow.com/a/16074054/612530 para obter informações sobre como rastrear todas as filiais localmente.