Heroku memiliki kebijakan mengabaikan semua cabang kecuali 'tuan'.
Meskipun saya yakin desainer Heroku memiliki alasan yang sangat baik untuk kebijakan ini (saya menduga untuk penyimpanan dan optimalisasi kinerja), konsekuensinya bagi saya sebagai pengembang adalah bahwa apa pun cabang topik lokal yang sedang saya kerjakan, saya ingin cara mudah untuk mengalihkan master Heroku ke cabang topik lokal dan melakukan "git push heroku -f" untuk menulis master yang berlebihan pada Heroku.
Apa yang saya dapat dari membaca bagian "Mendorong Refspecs" di http://progit.org/book/ch9-5.html adalah
git push -f heroku cabang-topik-lokal: ref / kepala / master
Apa yang saya benar-benar suka adalah cara untuk mengatur ini di file konfigurasi sehingga "git push heroku" selalu melakukan hal di atas, mengganti cabang topik-lokal dengan nama apa pun cabang saya saat ini. Jika ada yang tahu bagaimana mencapainya, beri tahu saya!
Peringatan untuk ini, tentu saja, adalah bahwa ini hanya masuk akal jika saya adalah satu-satunya yang dapat mendorong ke aplikasi / repositori Heroku itu. Tim uji atau QA mungkin mengelola repositori seperti itu untuk mencoba cabang-cabang kandidat yang berbeda, tetapi mereka harus berkoordinasi sehingga mereka semua sepakat tentang cabang apa yang mereka dorong pada hari tertentu.
Tak perlu dikatakan, itu juga akan menjadi ide yang sangat bagus untuk memiliki repositori jarak jauh yang terpisah (seperti GitHub) tanpa batasan ini untuk mendukung semuanya. Saya akan menyebutnya "asal" dan menggunakan "heroku" untuk Heroku sehingga "git push" selalu mencadangkan segalanya untuk asal, dan "git push heroku" mendorong cabang apa pun yang saya gunakan saat ini ke cabang utama Heroku, menimpanya jika diperlukan.
Apakah ini akan berhasil?
[remote "heroku"] url = [email protected]: my-app.git push = + referensi / kepala / *: referensi / kepala / master
Saya ingin mendengar dari seseorang yang lebih berpengalaman sebelum saya mulai bereksperimen, meskipun saya kira saya bisa membuat aplikasi tiruan di Heroku dan bereksperimen dengan itu.
Sedangkan untuk mengambil, saya tidak terlalu peduli apakah repositori Heroku hanya untuk penulisan. Saya masih memiliki repositori terpisah, seperti GitHub, untuk cadangan dan kloning semua pekerjaan saya.
Catatan Kaki: Pertanyaan ini mirip dengan, tetapi tidak sama dengan penyebaran Good Git menggunakan strategi cabang dengan Heroku?
Jawaban:
Saat menggunakan wildcard, itu harus ada di kedua sisi refspec, jadi
+refs/heads/*:refs/heads/master
tidak akan berfungsi. Tapi Anda bisa menggunakan+HEAD:refs/heads/master
:Anda juga dapat melakukan ini secara langsung dengan git push :
sumber
git push
Perintah terakhir yang melakukan melakukan hal yang sama. Lihatgit push --help
untuk arti dari-f
opsi dan+
di dalam refspec.-f
berarti kekuatan . Ini bekerja untuk saya dengan jawaban jassa .Lihat https://devcenter.heroku.com/articles/git#deploying-code
sumber
git push :master
yang menghapus cabang master dengan menimpanya tanpa apa-apa. Itu berbeda dari menimpanya dengan cabang lain. Heroku mungkin memiliki perlindungan untuk mencegah penghapusan cabang master.sumber
-f
atau--force
, dan itu selalu yang terbaik untuk memastikan Anda tahu apa yang Anda lakukan ketika Anda memaksa.Perintah teraman untuk mendorong cabang Git lokal yang berbeda ke Heroku / master.
Catatan: Meskipun, Anda dapat mendorong tanpa menggunakan -f, -f (bendera paksa) disarankan untuk menghindari konflik dengan dorongan pengembang lain.
sumber
Bagi saya, itu berfungsi,
sumber: - dokumen resmi
sumber
Perhatikan juga bahwa jika Anda menggunakan sistem aliran git dan cabang fitur Anda mungkin dipanggil
dan dengan remote git bernama stagingtwo, maka perintah untuk mendorong ke heroku adalah
sumber
Anda harus memeriksa heroku_san , itu memecahkan masalah ini dengan cukup baik.
Misalnya, Anda dapat:
Ini juga membuatnya mudah untuk memutar instance Heroku baru untuk menyebarkan cabang topik ke server baru:
Dan tentu saja Anda dapat membuat tugas menyapu yang lebih sederhana jika Anda sering melakukan sesuatu.
sumber
Saya menemukan ini bermanfaat. http://jqr.github.com/2009/04/25/deploying-multiple-environment-on-heroku.html
sumber
Laboratorium Heroku sekarang menawarkan add-on github yang memungkinkan Anda menentukan cabang mana yang akan didorong.
Lihat tulisan Heroku di fitur beta ini.
Anda harus mendaftar sebagai penguji beta untuk saat ini.
sumber
Saya pikir seharusnya begitu
push = refs/heads/*:refs/heads/*
sebagai gantinya...
sumber