Bagaimana cara menggunakan Bitbucket dan GitHub secara bersamaan untuk satu proyek?

94

Saya memiliki satu repositori yang ingin saya masukkan ke Bitbucket dan GitHub. Sangat penting bagi repositori saya untuk dihosting oleh keduanya.

Apakah ada cara untuk melakukan ini di Git?

erogol
sumber
4
Sepertinya ini sangat berguna. Apalagi jika salah satu repositori sedang down. Saat ini bitbucket sedang down dan saya pada dasarnya tidak dapat melakukan pekerjaan saya.
imranal

Jawaban:

117

Anda dapat menggunakan banyak repositori jarak jauh dengan git. Tapi Anda harus mendorong secara terpisah ke 2 dari remote Anda, saya yakin.

Misalnya, jika proyek Anda saat ini mengarah ke github, Anda dapat mengganti nama repositori jarak jauh Anda saat ini menjadi github:

$ git remote rename origin github

Anda kemudian dapat menambahkan repositori jarak jauh lainnya, misalnya bitbucket:

$ git remote add bitbucket [email protected]:your_user/your_repo.git

Sekarang untuk mendorong perubahan ke cabang terkait di github atau bitbucket, Anda dapat melakukan ini:

$ git push github HEAD
$ git push bitbucket HEAD

Aturan yang sama berlaku untuk penarikan: Anda perlu menentukan remote mana yang ingin Anda tarik:

$ git pull github your_branch
$ git pull bitbucket your_branch
Denis Kniazhev
sumber
9
Catatan untuk kunjungan mendatang, .ssh/configfile Anda adalah kunci untuk mencapai pengaturan ini. Tambahkan a Host github.comdan a Host bitbucket.orguntuk mengidentifikasi mana yang IdentityFileakan digunakan. Maka Anda tidak akan mendapatkan kesalahan izin ditolak mencoba menukar bolak-balik antara bitbucket dan github. Semoga ini bisa membantu seseorang.
Ultimater
31

Ya, Anda bisa melakukannya. Anda tidak perlu mendorong dua kali tetapi hanya sekali untuk mendorong ke kedua repositori jarak jauh. Saya memiliki masalah yang sama sebelumnya jadi menulis bagaimana melakukannya di sini. Git: Dorong ke / Tarik dari Github dan Bitbucket

Kevin Lee
sumber
2
Posting yang bagus! Akan lebih baik untuk memasukkan musim panas di sini jika Anda bisa.
OneHoopyFrood
28

Beberapa solusi MUDAH .

Beberapa remote didorong (dan diambil) secara independen

Ini adalah cara termudah untuk dipahami, tetapi upaya paling keras untuk dipertahankan.

Kami memulai dengan menambahkan remote baru kami:

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

Terus terang bukan? Kecuali tentu saja setiap kali kita melakukan perubahan apa pun, kita perlu mendorong ke "asal" asli dan "bitbucket" jarak jauh baru kita:

$ git push origin master
$ git push bitbucket master

Bukan overhead yang besar, tapi saya yakin itu akan rusak seiring waktu. Atau Anda dapat membuat `alias gpob =" master git push origin && git push bitbucket master ".

Remote tunggal dengan beberapa URL didorong (dan diambil) secara berurutan

Dengan metode ini, kami akan menambahkan URL tambahan ke "asal" jarak jauh kami yang ada:

$ 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

Jauh lebih sedikit usaha!

Tentu saja lapisan perak memiliki awan, dan dalam kasus ini, meskipun kami dapat mendorong ke beberapa URL secara bersamaan, kami hanya dapat mengambil dari "asal" asli (Anda dapat mengubahnya, tetapi itu di luar cakupan untuk posting ini ).

Terakhir, untuk melihat remote mana yang akan diambil:

$ git remote -v show

Saya membuat blog tentang itu juga.

Ahmad Awais
sumber