GitHub: Membuka kembali permintaan penarikan gabungan

101
  • Saya membuat beberapa perubahan
  • Saya mengajukan permintaan tarik
  • Permintaan penarikan diterima dan digabungkan.
  • Kami menemukan bug
  • Perubahan dihapus lagi saat saya memperbaiki bug.

Sekarang saya telah memperbaiki bug dan ingin mengirim ulang permintaan penarikan dengan 1 komit tambahan. Apakah ada cara untuk membuka kembali permintaan penarikan atau memperbaruinya, atau apakah saya harus membuat permintaan penarikan baru, mengetikkan deskripsi, dll. Lagi? Gitorious memiliki fitur ini dan kami baru saja pindah ke GitHub.

Michael Parker
sumber
Saya berada dalam situasi yang sama hari ini yaitu menggunakan tombol "Merge Pull Request" yang secara default menggabungkan perubahan ke cabang target dan menutup PR. Saya kemudian menemukan bug dalam pengujian yang saya ingin pengembang asli perbaiki. Saya ingin cara untuk membuka kembali PR ini sehingga lebih banyak komitmen dapat ditambahkan ke PR yang sama ini tetapi tidak bisa karena tidak ada tombol untuk membuka kembali PR.
SBirthare

Jawaban:

114

Jawabannya sepertinya: Anda tidak bisa.

Setelah permintaan tarik digabungkan dan ditutup, itu terkunci selamanya dan tidak dapat dibuka kembali. Jika permintaan penarikan Anda digabungkan, ditutup, kemudian perubahan Anda ditarik (melalui paksa mendorong mundur ke sebelum penggabungan), Anda perlu menambahkan komit ke cabang dan membuat permintaan penarikan baru, menyalin semua detail dan mungkin menyediakan tautan ke permintaan penarikan asli untuk menyimpan riwayat secara manual.

Mungkin permintaan fitur yang bagus untuk GitHub di masa mendatang.

Michael Parker
sumber
8
Saya tidak tahu kapan itu diubah, tetapi Anda dapat mengomentari & membuka kembali PR yang ditutup sekarang.
LB--
16
@LB, sepertinya Anda tidak dapat membuka kembali PR yang telah ditutup dan digabungkan .
A Kaptur
1
Kamu sebenarnya bisa. Dengan asumsi bahwa Anda telah mengembalikan penggabungan awal, Anda dapat membuat cabang dari repo utama, dan di cabang baru ini hanya mengembalikan komit yang mengembalikan penggabungan.
SsjCosty
7
@SsjCosty Tapi itu tidak membuka kembali PR yang ditutup & digabungkan. Anda selalu dapat membuka permintaan tarik baru, yang dibutuhkan oleh solusi Anda.
Adam Grant
1
"Mungkin permintaan fitur yang bagus untuk GitHub di masa mendatang." Sebenarnya, tidak. Jika PR dapat didefinisikan ulang setelah dibuat, maka orang yang memeriksa PR pada waktu yang berbeda, berpotensi menyimpang. Buat saja PR lain dan "sebutkan" yang sebelumnya dalam teks. Jika Anda ingin mereferensikan semacam tonggak sejarah, itu bukan PR untuk dilihat, itu akan menjadi tag.
Scott Prive
12

Saya baru saja berhasil membuka kembali permintaan tarik oleh

  1. Mengomentari permintaan tarik
  2. Mengklik tombol 'Kirim dan buka kembali' yang muncul di formulir komentar.
Tim Lovell-Smith
sumber
1
Saya belum berhasil meniru ini - dapatkah Anda menjelaskan langkah-langkah yang diperlukan untuk melihat perilaku ini? Saya mencoba mengomentari permintaan penarikan tertutup (tidak berfungsi), mengomentari permintaan penarikan tertutup dan mendorong ke cabang yang ditarik masuk (tidak berfungsi). Ada lagi yang bisa dicoba? Apakah permintaan penarikan perlu digabungkan lalu kemudian dipisahkan?
Michael Parker
Saya tidak tahu apa persyaratan tersembunyi yang membuat perbedaan. Bisa salah satu dari (telah mengirimkan perubahan baru untuk permintaan tarik, anggota pemilik proyek, lainnya ...)
Tim Lovell-Smith
1
Sekarang saya sudah mencoba semua yang Anda sebutkan, masih tidak bisa melihatnya. Saya adalah pemilik repo. Mencari Google untuk "Kirim dan buka kembali GitHub" memberikan satu klik - halaman ini. Informasi lebih lanjut akan sangat membantu. Apakah permintaan penarikan Anda awalnya ditolak?
Michael Parker
52
Saya dapat mereplikasi ini dengan permintaan tarik yang tidak digabungkan - tetapi thread ini tidak membahas tentang itu.
Dan Tello
2
Ya, yang dia maksud adalah tarikan tertutup, bukan tarikan gabungan.
loujaybee
4

Dapatkan saja cabang baru dari cabang yang ada di mana Anda telah melakukan 1 komit ekstra. Dari situ ajukan pull request.

Siva Gollapalli
sumber
3
Itu akan menghasilkan permintaan tarik baru dengan tidak ada riwayat untuk aslinya.
Dave
1
Inilah yang akhirnya saya lakukan. Ya, sejarahnya kurang linier tetapi tidak masalah bagi saya.
possen
4

Anda dapat menggunakan tindakan pengembalian:

masukkan deskripsi gambar di sini

Ini akan membuat permintaan tarik lain membatalkan semua perubahan yang dilakukan pada PR yang digabungkan.

William Weckl
sumber
Ini bukan praktik terbaik :)
antonbormotov
2
@antonbormotov dapatkah Anda menyarankan pendekatan yang lebih baik?
William Weckl
Mari kita asumsikan, kita telah menggabungkan pr dengan komit (mA dan mB) ke cabang stabil yang ingin kita kembalikan. Setelah menggabungkan pr "kembali", histori akan terlihat seperti pohon komitmen: XY-mA-mB-CD-rA-rB-EF. Mengapa Anda ingin melihat semua komit ini dalam riwayat, yang menerapkan perubahan (mA, mB) dan kemudian membatalkannya (rA, rB)? Akan lebih baik untuk melakukan rebase dan menghapus komit "buruk" mA dan mB dari cabang stabil dan menjaga sejarah tetap bersih. Tentu saja, masuk akal jika penggabungan relatif baru.
antonbormotov
1
Histori tidak hanya akan terlihat jelek, Anda juga tidak dapat lagi menggabungkan kembali komitmen yang dikembalikan saat Anda siap.
Michael
Saya memiliki skenario yang agak mirip dengan perbedaan kecil. Saya memiliki PR yang perlu saya tinjau dan seharusnya menunggu PR lain untuk digabungkan. Tapi saya tidak melihatnya dan menggabungkan PR ini sebelum waktunya. Saya benar-benar melakukan apa yang disarankan @WilliamWeckl. Tapi sekarang saya ingin membuat PR yang sama dengan perubahan yang sama yang dibuat sebelumnya. Tetapi ketika saya membuat PR cabang master tidak menunjukkan perbedaan, meskipun ketika saya melihat file individual mereka berbeda. Ada pemikiran?
Vikas