Conectando repositório local a dois remotos. (Git)
Overview
Se você está cansado de atualizar manualmente seus projetos em diferentes plataformas de hospedagem de código, prepare-se para ser surpreendido! Neste post, ensinaremos como sincronizar um repositório local com múltiplos remotos no Azure DevOps e GitHub, economizando tempo e evitando dores de cabeça. Com um simples push, você poderá manter todos os seus repositórios atualizados. Confira nosso guia passo a passo e faça sua vida de desenvolvedor um pouco mais fácil!
Atualmente, meu controle de versão é feito em dois lugares: Azure DevOps (antigo VisualStudio Online) e GitHub. Se todos os meus projetos pudessem ser compartilhados, eles ficariam no GitHub, mas como não é o caso, deixo todos no Azure e alguns no GitHub.
Por uma questão de conveniência, acabei ligando alguns repositórios locais tanto no Azure quanto no Github. Desta forma, com um push, sincronizo os dois remotos e é isso que mostro neste post.
Para este post, vamos partir do pressuposto de que você já tem um diretório com o código fonte, mas ele não está em um repositório ainda.
1. Criando o repositório local!
Sendo assim, a primeira coisa que precisamos fazer é criar um. Para isso, acesse o diretório no prompt e utilize o comando:
git init .
Agora o repositório existe, mas não possui arquivos. Vamos adicionar todos. (Não vou utilizar o .gitignore, pois não é o foco do post):
git add .
Ok. Repositório foi criado e está com todos os arquivos do diretório. O próximo passo é fazer um commit e persistir tudo:
git commit -m"Initial Commit."
2. Criando repositórios remotos.
Assim concluímos a primeira parte do tutorial. O próximo passo é criar os dois repositórios remotos.
Considerando que cada serviço de controle de versão (Azure DevOps, GitHub, Bitbutcket, etc) funciona de um jeito, não vou mostrar aqui como cirar o repositório nestes sites ou como pegar as credenciais para acessar via linha de comando. Todavia, utilize a seguinte regra como base na hora de cria-los: crie um repositório vazio. No momento da criação, não adicione nenhum arquivo automaticamente: Nem o .gitignore, nem o arquivo de licença, nada. Adicione tudo depois.
Isso vai facilitar muito a vida.
3. Ligando repositório local ao primeiro repositório remoto.
git remote add origin https://url.para.seu.repositorio.git
O comando acima vai criar um remoto chamado origin e vai aponta-lo para a url que você informar.
Não faz diferença qual repositório remoto você adicionará primeiro, mas este será o repositório remoto de onde o GIT vai puxar (pull) o fonte.
4. Adicionando repositórios remotos para push.
git remote set-url origin --push --add https://url_para_repositorio_remoto_1
git remote set-url origin --push --add https://url_para_repositorio_remoto_2
Você vai utilizar o comando acima para adicionar todos os repositórios que devem receber o seu fonte, quando o comando push for realizado do local para o origin.
5. Faça o push dos dados.
git push origin master
Pronto! Agora é só fazer o upload dos arquivos utilizando o comando push e todos os repositórios remotos que você adicionou no passo 4 irão receber o fonte.
Vale lembrar que, se os repositórios remotos estiverem em estados diferentes, ou seja, cada um com um grupo de arquivos em estados diferentes, você terá a árdua tarefa de sincroniza-los primeiro.
Uma última observação: Esta integração funciona “apenas” para as versões do GitHub de 2012 para frente. Talvez seja importante para você…
Espero ter ajudado!