web-dev-qa-db-fra.com

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

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.

Y a-t-il un moyen de le faire dans Git?

84
erogol

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 [email protected]:your_user/your_repo.git

Maintenant, pour pousser les modifications sur 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 de quelle télécommande vous souhaitez extraire:

$ git pull github your_branch
$ git pull bitbucket your_branch
107
Denis Kniazhev

Oui, tu peux faire ça. Vous n'avez pas besoin de pousser deux fois mais une seule fois pour pousser vers les deux référentiels distants. J'ai eu le même problème avant, alors j'ai écrit comment le faire ici. Git: push to/pull from both Github and Bitbucket

29
Kevin Lee

Quelques [~ # ~] solutions faciles [~ # ~] .

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

C'est le plus facile à maîtriser, mais le plus d'efforts à maintenir.

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

$ cd myproject 
$ git remote add bitbucket ssh://[email protected]/user/myproject.git 
$ git Push bitbucket master

Tout simplement 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 ne sont pas des frais généraux énormes, mais je suis sûr que ça va griller avec le temps. Ou vous pouvez créer un `alias gpob =" git Push Origin master && git Push bitbucket master ".

Une seule télécommande 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://[email protected]/user/myproject.git
$ git Push Origin master
Everything up-to-date
Everything up-to-date

Beaucoup moins d'effort!

Bien sûr, la doublure argentée 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 "origine" (vous pouvez changer cela, mais cela est hors de portée pour ce post ).

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

$ git remote -v show

Je blogué à ce sujet également.

28
Ahmad Awais