Permintaan tarik masuk ke repo saya yang dihosting di Github. Secara default, ini digabungkan ke dalam master
cabang.
Apakah ada cara bagi saya untuk mengubah cabang tempat perubahan akan digabungkan?
sumber
Permintaan tarik masuk ke repo saya yang dihosting di Github. Secara default, ini digabungkan ke dalam master
cabang.
Apakah ada cara bagi saya untuk mengubah cabang tempat perubahan akan digabungkan?
Mulai 15.08.2016 GitHub memungkinkan mengubah cabang target dari permintaan penarikan melalui GUI. Klik di Edit
samping judul, lalu pilih cabang dari menu drop-down.
Anda sekarang dapat mengubah cabang dasar dari permintaan tarik terbuka. Setelah Anda membuat permintaan tarik, Anda dapat memodifikasi cabang dasar sehingga perubahan dalam permintaan tarik dibandingkan dengan cabang yang berbeda. Dengan mengubah cabang dasar dari permintaan penarikan asli Anda daripada membuka yang baru dengan cabang dasar yang benar, Anda akan dapat menyimpan pekerjaan dan diskusi yang berharga.
Pengirim dapat mengubahnya ketika mereka mengeluarkan permintaan penarikan, tetapi setelah mereka mengeluarkannya, Anda tidak dapat mengubahnya.
Di sisi lain, Anda dapat menggabungkan cabang dan push secara manual, yang saya lakukan secara semi-rutin untuk permintaan tarik yang salah sasaran.
Anda mungkin menemukan
hub
permata itu membantu dalam bekerja dengan komponen permintaan tarik.Permata itu membungkus proses manual, yaitu:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
sumber
git merge --no-ff ...
seperti yang disebutkan @GuillermoMansilla dalam jawabannya.Alternatif untuk menggunakan permata hub yang disebutkan oleh jawaban lain adalah dengan menggunakan baris perintah untuk menggabungkan permintaan penarikan secara lokal , yang memungkinkan Anda untuk melakukan:
Perintah di atas hanya berfungsi secara langsung jika Anda menambahkan baris berikut ke
.git/config
file Anda terlebih dahulu :Apa yang dilakukannya adalah memungkinkan Anda mengunduh SEMUA permintaan tarik. Karena itu mungkin tidak diinginkan untuk repositori besar, GitHub memodifikasi instruksi untuk menampilkan
git fetch origin pull/ID/head:BRANCHNAME
sintaks, yang menghindari modifikasi file konfigurasi dan hanya mengunduh permintaan tarik tunggal itu.sumber
Meskipun Anda tidak dapat mengubah permintaan pull yang ada karena itu bukan milik Anda, Anda dapat dengan mudah membuat yang baru jika repositori sumber terkait masih ada - ya, meskipun itu milik orang lain.
Pergi ke repositori pengirim kemudian buat permintaan tarik baru di repositori mereka menggunakan komit yang sama tetapi pastikan Anda menyetel cabang target yang benar dengan benar.
Kemudian kembali ke repositori Anda sendiri dan terima permintaan penarikan baru. Voila!
sumber
Tidak ada yang salah dengan solusi Daniel Pittman, namun saya akan memperlakukan penggabungan tersebut sebagai "no fast forward", yaitu mengubah langkah nomor 3 untuk:
Dengan menggunakan
--no-ff
, history akan lebih mudah dibaca. Ini akan dengan jelas mengatakan bahwa$n
komitmen itu berasal$branch
, dan itu juga akan membuat hidup Anda lebih mudah jika Anda perlu mengembalikan sesuatu yang dilakukan di cabang itu.Untuk juga menjawab pertanyaan eoinoc dan memberikan tip tambahan:
Setelah melakukan penggabungan, git cli Anda akan meminta Anda untuk menulis pesan, biasanya pesan umum akan muncul mengatakan sesuatu seperti
Pastikan untuk mengedit pesan itu dan menyertakan referensi ke nomor permintaan pull. Yaitu: (Dengan asumsi nomor permintaan penarikan adalah 123)
Jadi lain kali Anda mengunjungi halaman masalah github / permintaan tarik dan memeriksa permintaan tarik tertentu itu, Anda akan melihat pesan Anda dengan tautan untuk melakukan di mana Anda melakukan penggabungan.
Ini screenshot yang saya maksud.
sumber
Untuk melakukan itu pergi ke halaman rumah repositori Anda, klik pada cabang, dan ubah cabang default dari master menjadi sesuatu yang lain, dalam kasus saya "dev".
Setelah itu, setiap kali seseorang membuat permintaan tarik,
merge
tombol secara otomatis akan menggabungkan permintaan tersebut menjadi "dev" daripada master.sumber