Bitbucket ve GitHub'ı bir proje için aynı anda nasıl kullanabilirim?


95

Bitbucket ve GitHub'a göndermek istediğim bir depom var. Depomun her ikisi tarafından barındırılması hayati önem taşıyor.

Bunu Git'te yapmanın bir yolu var mı?


4
Bu çok faydalı görünüyor. Özellikle bir depo çalışmadığında. Şu anda bitbucket çalışmıyor ve temelde işimi yapamıyorum.
imranal

Yanıtlar:


120

Git ile birden fazla uzak depoyu kullanabilirsiniz. Ama inandığım 2 uzaktan kumandanıza ayrı ayrı itmeniz gerekecek.

Örneğin, projeniz şu anda github'ı gösteriyorsa, mevcut uzak deponuzu şu şekilde yeniden adlandırabilirsiniz github:

$ git remote rename origin github

Daha sonra başka bir uzak depo ekleyebilirsiniz, şunu söyleyin bitbucket:

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

Şimdi değişiklikleri github veya bitbucket üzerindeki ilgili dala göndermek için şunu yapabilirsiniz:

$ git push github HEAD
$ git push bitbucket HEAD

Çekme için de aynı kural geçerlidir: hangi uzaktan kumandadan çekim yapmak istediğinizi belirtmeniz gerekir:

$ git pull github your_branch
$ git pull bitbucket your_branch

9
Gelecekte ziyaret eden kişiler için, .ssh/configdosyanız bu kurulumu gerçekleştirmenin anahtarıdır. Hangisinin kullanılacağını belirlemek için a Host github.comve a ekleyin . O zaman, bitbucket ve github arasında gidip gelmeye çalışırken izin verilmedi hatası almayacaksınız. Umarım bu birine yardımcı olur. Host bitbucket.orgIdentityFile
Ultimater


28

Birkaç KOLAY çözüm.

Birden fazla uzaktan kumanda bağımsız olarak itildi (ve getirildi)

Bu, kafanızı karıştırmanın en kolay yolu, ancak sürdürmek için en çok çaba.

Yeni uzaktan kumandamızı ekleyerek başlıyoruz:

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

Dürüst değil mi? Elbette, herhangi bir değişiklik yaptığımız her seferinde, hem orijinal "kökenimize" hem de yeni uzaktan "bitbucket'imize" zorlamamız gerekir:

$ git push origin master
$ git push bitbucket master

Çok büyük bir ek yük değil, ama eminim zamanla güzelleşecek. Veya bir "alias gpob =" git push origin master && git push bitbucket master "oluşturabilirsiniz.

Birden fazla URL'nin art arda itildiği (ve getirildiği) tek uzaktan kumanda

Bu yöntemle, mevcut uzak "kaynağımıza" ek bir URL ekleyeceğiz:

$ 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

Çok daha az çaba!

Elbette gümüş astarın bir bulutu vardır ve bu durumda, aynı anda birden çok URL'ye aktarabilsek de, yalnızca orijinal "başlangıçtan" ​​getirebiliriz (bunu değiştirebilirsiniz, ancak bu, bu gönderinin kapsam dışıdır ).

Son olarak, hangi uzaktan kumandanın alınacağını görmek için:

$ git remote -v show

Ben de bunun hakkında blog yazdım .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.