Estou pensando em iniciar um projeto pequeno e quero fazer sua versão com o git.
Bitbucket parece uma boa opção para mim com seu plano gratuito. Eu quero usá-lo como a principal ferramenta para trabalhar com o git, pois eles têm boas ferramentas como interface da web, cliente do Mac OS e assim por diante. Mas, para ter uma proteção mais alta contra danos acidentais que podem ser causados pelo uso de um serviço de terceiros, também quero instalar o git no meu NAS como uma segunda cópia de backup do repositório.
Agora, minha pergunta é: é possível criar um repositório em dois hosts diferentes e depois mantê-los sincronizados? Por exemplo, suponha que uma vez por semana eu atualize o repositório no meu NAS para corresponder ao do Bitbucket. Então, caso algo aconteça com o Bitbucket, ainda terei o repositório completo com histórico completo de desenvolvimento no meu armazenamento NAS local.
E existe uma maneira de importar um repositório existente com histórico completo para outro serviço git?
Eu acho que espelhar é o que eu preciso. Este artigo parece descrever exatamente o que eu preciso. E este um bem.
Eu acredito que ele fará uma cópia completa com histórico completo e até mesmo comprometerá automaticamente novas versões para os repositórios nos dois hosts automaticamente.
Estou certo?
Respostas:
Sim, essa é exatamente a beleza do DVCS, como o git. Você pode usar qualquer número de repositórios diferentes com o mesmo estado que aquele no bitbucket ou no github.
Até a sua cópia local (o repositório no seu computador) geralmente é um clone completo do repositório remoto.
A única coisa que você precisa fazer para manter vários repositórios em sincronia é buscar um (normalmente chamado origem ou upstream) e enviar para as cópias de backup.
fonte
Aqui está uma solução testada para o problema: Repositórios Git remotos de sincronização automática 2
Um script simples para sincronizar 2 repositórios Git remotos
Eu pesquisei na web por um script simples que será sincronizado. 2 repositórios remotos, mas não consegui encontrar esse script, mesmo que muitos pareçam procurá-lo! Então, eu criei 2 repositórios de teste simples e comecei a testar e criar esse script.
O que esse script deve fazer?
Bem, em geral, as etapas para isso são simples: 1. Clone o primeiro repositório 1. Adicione o segundo como um repositório remoto adicional 1. busque tudo o que há no segundo repositório 1. envie o repositório local atualizado para o 2 repositórios remotos.
O problema restante é: quais são as opções corretas para todos os comandos git acima?
Então aqui está...
Script 2repos-sync.sh gisp
NOTA - este script não está resolvendo casos de conflitos entre o conteúdo do repositório!
fonte
Eu uso um GitLab privado para armazenar todos os meus repositórios, portanto, tenho apenas uma origem de onde empurro e puxo enquanto faço o desenvolvimento do dia a dia.
Mas, para projetos de código aberto, o GitHub é uma comunidade muito mais vibrante; portanto, se eu quiser aceitar contribuições da comunidade para meus projetos, uso o sistema de gancho da web do GitLab da web para executar ping em um servidor executado, que atualiza meus repositórios públicos no GitHub.
Isso permite que eu trate o GitHub como outro controle remoto que eu possa usar quando alguém contribuir - depois mesclar - no-ff localmente, e haverá um fluxo de como todos os meus repositórios primário e público distribuem as alterações.
fonte