Header Ads

Como usar o git com vários repositórios remotos

O

git pode ser configurado para enviar e receber a partir de vários locais ao mesmo tempo, permitindo armazenar seu código em duas plataformas diferentes, mantendo apenas uma cópia local. Veja como configurá-lo.

Controle remoto explicado

O “ remoto ” para uma ramificação é um URL a partir do qual o seu repositório git local busca as alterações. Seu repositório git local é inteiramente seu, não é afetado pelo código de outras pessoas até que eles enviem seus commits para o controle remoto. Felizmente, você está usando o mesmo controle remoto e tudo é sincronizado, mas o controle remoto é apenas um ponto de extremidade. Você pode clonar esse ponto de extremidade e alternar para um novo controle remoto sem muito problema.

Sempre que você clona um novo repositório, o controle remoto padrão é definido como “ origem. ” Você pode encontrar os controles remotos para qualquer repositório Git, executando:

 git remote -v 

Isso provavelmente exibirá a URL do seu repositório principal no GitHub ou em qualquer serviço que você esteja usando. Se você tiver vários controles remotos, eles também aparecerão aqui.

Mas apenas porque a origem é o controle remoto padrão, isso não significa que você está limitado a um. Por que você quer dois controles remotos? Bem, um bom caso de uso é o CodeCommit da AWS. É um repositório git hospedado e possui muitas integrações com sua plataforma de computação EC2, permitindo implantações automatizadas de código em seus servidores, diretamente do controle de origem.

No entanto, o CodeCommit é bastante desajeitado em comparação com provedores de git mais focados, como GitHub, GitLab e BitBucket, e não tem as mesmas integrações de CI / CD que tornam esses provedores excelentes. Então, você está preso a um dilema: use o CodeCommit como sua solução git padrão ou construa você mesmo seu pipeline de implantação de código automatizado.

No entanto, com vários controles remotos, você pode facilmente enviar o código para um segundo repositório. Sempre que quiser atualizar seus servidores, você pode enviar as alterações do seu controle de fonte principal para o CodeCommit para iniciar o pipeline de implantação.

Configurando vários controles remotos

Usar o git dessa maneira é realmente bastante simples. Você adiciona controles remotos da mesma maneira que enviaria uma pasta existente, exceto em vez de adicionar a “ origem ” remoto, você atribui um nome diferente.

 git remote add < nome > < url > 

Em seguida, quando desejar enviar por push para o segundo controle remoto, adicione o nome e ramificação do controle remoto ao seu comando de envio:

 git push segundo mestre 

Ou alterne o controle remoto padrão usando --set-upstream:

 git push --set-upstream segundo mestre 

Essa é a configuração mais simples; no entanto, você deve passar o nome do controle remoto como argumento ou alternar o controle remoto todas as vezes.

Realmente, se você estiver usando uma configuração de dois controles remotos, provavelmente desejará uma maneira melhor de gerenciar o envio de código para o seu segundo controle remoto. A melhor maneira de lidar com isso no git é criar outra ramificação para o código enviado para o segundo upstream, como implantações no AWS CodeCommit.

Você pode criar uma ramificação com o checkout -b:

 git checkout -b deployment 

Em seguida, adicione o remoto da implantação:

 git remote add deploy < url > 

e busque o ramo principal:

 mestre de implantação do git fetch 

Em seguida, você pode definir o upstream da ramificação atual executando:

 ramificação git --set-upstream-to = implantação / mestre 

Você pode repetir esse processo para qualquer número de ramificações, tornando-o um ótimo método para acompanhar vários controles remotos. Lembre-se, porém, de que essa é apenas uma configuração local; portanto, se você enviar esta ramificação para o repositório principal, outras pessoas não terão suas cópias da ramificação de implantação configuradas para usar o segundo controle remoto automaticamente.

Seria ideal se o segundo ramo fosse apenas de uma maneira, ou seja, você está apenas pressionando o código, não puxando o novo código; caso contrário, poderá ocorrer conflitos inesperados. Fora isso, o git funciona perfeitamente com vários controles remotos.

Via: How to Geek

Nenhum comentário