Como migrar um repositório git sem perder o histórico?

Faz alguns anos que comecei a trabalhar com git e na época escolhi o Unfuddle como serviço para meus repositórios privados e de clientes. Atualmente estou usando o Bitbucket para repositórios privados e o Github para projetos open-source, mas ainda tem alguns repositórios “legados” no antigo serviço.

Ontem retomei um projeto de uns dois anos atrás que estava no unfuddle e resolvi migrar para o bitbucket, mas como fazer esta migração mantendo todo o histórico de commit e branches do repositório?

Como migrar um repositório git sem perder seu histórico?

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 [email protected]: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.

Você também pode gostar: