Conectando repositório local a dois remotos. (Git)

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!