Come utilizzare Bitbucket e GitHub contemporaneamente per un progetto?


94

Ho un repository che voglio inserire in Bitbucket e GitHub. È fondamentale che il mio repository sia ospitato da entrambi.

C'è un modo per farlo in Git?


4
Questo sembra molto utile. Soprattutto quando un repository è inattivo. Al momento bitbucket non funziona e praticamente non sono in grado di svolgere il mio lavoro.
imranal

Risposte:


117

Puoi utilizzare più repository remoti con git. Ma credo che dovrai spingere separatamente in 2 dei tuoi telecomandi.

Ad esempio, se il tuo progetto attualmente punta a github, puoi rinominare il tuo repository remoto corrente in github:

$ git remote rename origin github

Puoi quindi aggiungere un altro repository remoto, ad esempio bitbucket:

$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git

Ora per inviare le modifiche al ramo corrispondente su github o bitbucket puoi farlo:

$ git push github HEAD
$ git push bitbucket HEAD

La stessa regola si applica al pull: è necessario specificare da quale telecomando si desidera eseguire il pull:

$ git pull github your_branch
$ git pull bitbucket your_branch

9
Nota per le future persone che visiteranno, il tuo .ssh/configfile è la chiave per ottenere questa configurazione. Aggiungere una Host github.come una Host bitbucket.orgper identificare quale IdentityFileutilizzare. Quindi non otterrai l'autorizzazione negata per errori nel tentativo di scambiare avanti e indietro tra bitbucket e github. Spero che questo aiuti qualcuno.
Ultimater


28

Alcune soluzioni EASY .

Più telecomandi spinti (e recuperati) indipendentemente

Questo è il modo più facile da capire, ma lo sforzo maggiore da mantenere.

Iniziamo aggiungendo il nostro nuovo telecomando:

$ cd myproject 
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git 
$ git push bitbucket master

Semplice no? Tranne ovviamente ogni volta che effettuiamo modifiche, dobbiamo eseguire il push sia della nostra "origine" originale che del nostro nuovo "bitbucket" remoto:

$ git push origin master
$ git push bitbucket master

Non un sovraccarico enorme, ma sono sicuro che col tempo griderà. Oppure puoi creare un `alias gpob =" git push origin master && git push bitbucket master ".

Singolo telecomando con più URL inviati (e recuperati) consecutivamente

Con questo metodo, aggiungeremo un URL aggiuntivo alla nostra "origine" remota esistente:

$ 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

Molto meno sforzo!

Ovviamente il lato positivo ha una nuvola e, in questo caso, è che mentre possiamo eseguire il push a più URL contemporaneamente, possiamo solo recuperare dall '"origine" originale (puoi cambiarlo, ma non rientra nell'ambito di questo post ).

Infine, per vedere quale telecomando verrà recuperato da:

$ git remote -v show

Ho scritto anche su di esso .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.