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?
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?
Réponses:
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
.ssh/config
fichier est la clé pour réaliser cette configuration. Ajoutez un Host github.com
et un Host bitbucket.org
pour identifier lequel IdentityFile
utiliser. 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.
Oui, tu peux faire ça. Vous n'avez pas besoin de pousser deux fois mais juste une 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 depuis Github et Bitbucket
Quelques solutions FACILES .
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 ".
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 .