Eu tenho um repositório que desejo enviar para o Bitbucket e o GitHub. É vital que meu repositório seja hospedado por ambos.
Existe uma maneira de fazer isso no Git?
Eu tenho um repositório que desejo enviar para o Bitbucket e o GitHub. É vital que meu repositório seja hospedado por ambos.
Existe uma maneira de fazer isso no Git?
Respostas:
Você pode usar vários repositórios remotos com git. Mas você terá que empurrar separadamente em 2 de seus controles remotos, eu acredito.
Por exemplo, se seu projeto atualmente aponta para o github, você pode renomear seu repositório remoto atual para github
:
$ git remote rename origin github
Você pode então adicionar outro repositório remoto, diga bitbucket
:
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
Agora, para enviar alterações para o branch correspondente no github ou bitbucket, você pode fazer isso:
$ git push github HEAD
$ git push bitbucket HEAD
A mesma regra se aplica ao pull: você precisa especificar de qual controle remoto deseja extrair:
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
arquivo é a chave para realizar essa configuração. Adicione um Host github.com
e um Host bitbucket.org
para identificar qual IdentityFile
usar. Então você não obterá erros de permissão negada ao tentar alternar entre o bitbucket e o github. Espero que isso ajude alguém.
Sim, você pode fazer isso. Você não precisa fazer push duas vezes, mas apenas uma vez para enviar para ambos os repositórios remotos. Eu tive o mesmo problema antes, então escrevi como fazê-lo aqui. Git: enviar para / puxar do Github e do Bitbucket
Algumas soluções fáceis .
Este é o mais fácil de entender, mas o maior esforço para mantê-lo.
Começamos adicionando nosso novo controle remoto:
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
Direto, não? Exceto, é claro, sempre que confirmamos qualquer alteração, precisamos enviar tanto para nossa "origem" original quanto para nosso novo "bitbucket" remoto:
$ git push origin master
$ git push bitbucket master
Não é uma sobrecarga enorme, mas tenho certeza de que vai se irritar com o tempo. Ou você pode criar um `alias gpob =" git push origin master && git push bitbucket master ".
Com este método, iremos adicionar um URL adicional à nossa “origem” remota existente:
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
Muito menos esforço!
Claro que o forro de prata tem uma nuvem e, neste caso, é que, embora possamos enviar para vários URLs simultaneamente, só podemos buscar na “origem” original (você pode mudar isso, mas isso está fora do escopo deste post )
Finalmente, para ver de qual controle remoto será obtido:
$ git remote -v show
Eu bloguei sobre isso também.