Multiplos remotes no git

Minha primeira contribuição por aqui. #fikdik

Em busca de se desenvolver uma comunidade aberta e colaborativa temos estimulado o uso do git do planejamento. No entanto, muitos gostam de manter seus trabalhos no github, tanto em repositórios públicos quanto privados.

Uma coisa que gosto de fazer é de adicionar um segundo remote ao projeto que estou trabalhando e assim com um único push eu mando o projeto tanto para o gitlab do planejamento quanto para um repositório privado no github, permitindo que eu possa trabalhar no projeto fora da rede do MP e sem ferir o desenvolvimento de nosso corpus interno.

Primeiro eu adiciono um remote com o nome de all (pode ser qualquer outro nome):

# git remote add all http://git.planejamento.gov.br/[cpf]/[repositorio].git

Depois eu adiciono uma nova url ao remote all para o repositório no github:

# git remote set-url --add --push all https://github.com/[usuario]/[repositorio].git

Prontinho, a partir de agora com um único git push all master você estará enviado o projeto para os dois repositórios. Para enviar apenas para o repositório “principal” (origin) basta um git push ou git push orgin master.

Att.

3 Curtidas

Ótima dica. Uma outra forma de chegar no mesmo resultado é utilizando a funcionalidade de espelhamento (repository mirroring) do gitlab:

https://docs.gitlab.com/ee/workflow/repository_mirroring.html

"Repository mirroring allows for mirroring of repositories to and from external sources. It can be used to mirror branches, tags, and commits between repositories.

A repository mirror at GitLab will be updated automatically. You can also manually trigger an update at most once every 5 minutes."

1 Curtida

Awesome :smiley:. Não sabia disso. Vou dar uma lida e implementar o que for mais fácil.

1 Curtida