Alterando repositório remote no git
Sempre que versionamos nossos código no git, utilizamos um sistema de versionamento distribuído.
Com isso é possível alterar o repositório remoto do gitlab para o github ou vice-versa, sem perder o histórico de alteração, como os commits, quem alterou e o que alterou, resumindo, toda a rastreabilidade das alterações versionadas.
Como fazemos isso?
Para exemplificar, vamos utilizar o repositório criado para esse post no github e levar para o gitlab. O repositório é alterando-repositorio.
Com o projeto versionado no github e já sincronizado.
No diretório do projeto vamos listar os repositórios remotos com o seguinte comando
$ git remote -v
Como retorno, temos os repositórios remotos existentes.
origin https://github.com/fabiotavarespr/alterando-repositorio.git (fetch)
origin https://github.com/fabiotavarespr/alterando-repositorio.git (push)
Origin
O nome do repositório padrão é origin, esse nome é definido no copia e cola que o github ou gitlab apresenta quando criamos nossos projetos e faz o primeiro commit, mas as pessoas nem param para pensar, então depois executam git push e git pull e vão trabalhando automaticamente.
Para visualizar melhor, vamos mudar esse nome para github.
$ git remote rename origin github
Listando os repositórios novamente, e veremos o resultado da alteração
$ git remote -v
github https://github.com/fabiotavarespr/alterando-repositorio.git (fetch)
github https://github.com/fabiotavarespr/alterando-repositorio.git (push)
Adicionando o repositório remoto do gitlab e sincronizando os repositórios.
Para adicionar o repositório remoto do gitlab no nosso repositório local vamos executar o seguinte comando.
$ git remote add gitlab https://gitlab.com/fabiotavarespr/alterando-repositorio.git
Com isso adicionamos o repositório remoto do gitlab, nomeamos ele como gitlab, ficando da seguinte forma a listagem dos repositórios.
$ git remote -v
github https://github.com/fabiotavarespr/alterando-repositorio.git (fetch)
github https://github.com/fabiotavarespr/alterando-repositorio.git (push)
gitlab https://gitlab.com/fabiotavarespr/alterando-repositorio.git (fetch)
gitlab https://gitlab.com/fabiotavarespr/alterando-repositorio.git (push)
Próximo passo agora, é sincronizar o repositório local com o repositório remoto, para isso vamos executar
$ git push -u gitlab --all
$ git push -u gitlab --tags
Conferindo os commits no gitlab, análise que eles ficam com o mesmo hash que no github, mantendo toda a rastreabilidade do código nos dois repositórios remotos, como prometido
Para remover qualquer um dos repositórios remotos basta executar git remote remove $NOME_REPOSITORIO, como exemplo.
$ git remote remove github
Para renomear um dos repositórios remotos basta executar git remote remove $NOME_REPOSITORIO, como exemplo.
$ git remote rename gitlab origin
Ficando no final assim, somente o repositório remoto do gitlab, com o nome origin.
$ git remote -v
origin https://gitlab.com/fabiotavarespr/alterando-repositorio.git (fetch)
origin https://gitlab.com/fabiotavarespr/alterando-repositorio.git (push)