Comment utiliser Bitbucket et GitHub en même temps pour un projet?


94

J'ai un référentiel que je veux pousser dans Bitbucket et GitHub. Il est vital que mon référentiel soit hébergé par les deux.

Existe-t-il un moyen de faire cela dans Git?


4
Cela semble très utile. Surtout lorsqu'un référentiel est en panne. Pour le moment, bitbucket est en panne et je ne suis pas en mesure de faire mon travail.
imranal

Réponses:


117

Vous pouvez utiliser plusieurs référentiels distants avec git. Mais vous devrez pousser séparément dans 2 de vos télécommandes, je crois.

Par exemple, si votre projet pointe actuellement vers github, vous pouvez renommer votre référentiel distant actuel en github:

$ git remote rename origin github

Vous pouvez ensuite ajouter un autre référentiel distant, par exemple bitbucket:

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

Maintenant, pour pousser les modifications vers la branche correspondante sur github ou bitbucket, vous pouvez le faire:

$ git push github HEAD
$ git push bitbucket HEAD

La même règle s'applique à l'extraction: vous devez spécifier la télécommande à partir de laquelle vous souhaitez extraire:

$ git pull github your_branch
$ git pull bitbucket your_branch

9
Note aux futurs visiteurs, votre .ssh/configfichier est la clé pour réaliser cette configuration. Ajoutez un Host github.comet un Host bitbucket.orgpour identifier lequel IdentityFileutiliser. Ensuite, vous n'obtiendrez pas les erreurs d'autorisation refusées en essayant de permuter entre bitbucket et github. J'espère que cela aide quelqu'un.
Ultimater


28

Quelques solutions FACILES .

Plusieurs télécommandes poussées (et récupérées) indépendamment

C'est le plus facile à comprendre, mais le plus d'effort à maintenir.

Nous commençons par ajouter notre nouvelle télécommande:

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

Simple non? Sauf bien sûr à chaque fois que nous commettons des modifications, nous devons pousser à la fois notre «origine» d'origine et notre nouveau «bitbucket» distant:

$ git push origin master
$ git push bitbucket master

Ce n'est pas une surcharge énorme, mais je suis sûr que cela va griller avec le temps. Ou vous pouvez créer un `alias gpob =" git push origin master && git push bitbucket master ".

Télécommande unique avec plusieurs URL poussées (et récupérées) consécutivement

Avec cette méthode, nous allons ajouter une URL supplémentaire à notre «origine» distante existante:

$ 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

Beaucoup moins d'effort!

Bien sûr, il y a un nuage, et dans ce cas, c'est que même si nous pouvons pousser vers plusieurs URL simultanément, nous ne pouvons extraire que de l '«origine» d'origine (vous pouvez changer cela, mais cela est hors de portée pour cet article ).

Enfin, pour voir quelle télécommande sera récupérée:

$ git remote -v show

J'ai aussi blogué à ce sujet .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.