O primeiro passo é fazer o clone do repositório original, para pegar todas as informações necessárias:
git clone url-do-repositorio.git
Agora você tem todos os arquivos e históricos do repositório no seu repositório git local. Vamos remover o repositório remoto (no meu caso, o unfuddle). Neste exemplo o nome do repositório remoto é “origin”, substitua se necessário.
git remote rm origin
Agora vamos adicionar o novo repositório remoto (no meu caso, o do bitbucket):
git remote add origin git@bitbucket.org:gserrano/meurepositorio.git
Para finalizar, vamos dar um push de todos os dados do seu repositório local (recuperados do seu antigo repositório remoto) para o novo repositório remoto:
git push -u origin --all git push -u origin --tags
Pronto, assim você não perde o histórico do seus repositórios GIT e tem liberdade para migrar de serviço se necessário.