Utilizo o BitBucket há algum tempo por causa da possibilidade de criar repositórios privados grátis sem muita complicação, e também por ele ter integração com o Codeship (ainda pretendo escrever um post sobre ele). Mas decidi abrir alguns dos meus projetos particulares após começar a participar da comunidade um pouco mais ativamente. Por isso, optei por mover esses projetos abertos para o GitHub devido à maior popularidade deste para projetos opensource. Pensei que teria dificuldade, que seria muito complicado transferir todo o histórico de commits e etc, mas é uma tarefa muito mais simples do que parece.
Primeiro de tudo é preciso criar o novo repositório no GitHub. Dentro da sua página de perfil, abra a aba "Repositories" e clique no botão "New". Assim:
Tenha o cuidado de desmarcar a opção "Initialize this repository with a README" enquanto cria o repositório. Dessa forma, o GitHub vai criar um repositório totalmente vazio.
Depois, copie a URL do repositório criado. Dentro da pasta onde você já possui o projeto hospedado no BitBucket clonado, execute os seguintes comandos:
$ git remote rename origin bitbucket $ git remote add origin <URL do repositório criado> $ git push origin master
Pronto! Todo o repositório do BitBucket vai ser copiado para o GitHub, inclusive mantendo o histórico de commits. Se desejar remover totalmente o projeto do BitBucket, execute também:
$ git remote rm bitbucket
É possível também fazer o processo inverso, movendo um projeto do GitHub para o BitBucket. Basta inverter a ordem dos repositórios utilizados.
Não cheguei a testar, mas acho que esses comandos funcionam para migrar para qualquer outro repositório Git (GitHub, BitBucket, GitLab, etc).