GitHub telah memindahkan stacked pull requests ke dalam pratonton awam, membolehkan pembangun membahagikan perubahan besar kepada rantaian PR yang bergantung antara satu sama lain yang boleh disemak dan digabungkan secara bebas.

Mengapa ciri ini penting

Satu PR monolitik sering kali menjadi proses semakan yang berlarutan selama sebulan, di mana penyemak terpaksa meneliti kod yang tidak berkaitan. Apabila base branch berubah, perubahan besar tersebut cenderung mengalami konflik penggabungan (merge conflicts) yang melambatkan pelancaran. Stacked PRs menangani kedua-dua masalah ini dengan menukarkan satu diff besar kepada siri diff yang lebih kecil dan fokus, di mana setiap satu dibina berasaskan yang sebelumnya.

Cara ia berfungsi

Cipta PR pertama terhadap main branch, kemudian jadikan PR seterusnya berasaskan PR pertama, yang ketiga berasaskan yang kedua, dan seterusnya. GitHub menjejaki hubungan tersebut secara automatik: jika anda mengubah suai PR asas, PR yang bergantung akan dikemas kini untuk mencerminkan keadaan baharu. Penyemak boleh meluluskan keseluruhan stack dengan satu klik atau mengesahkan lapisan individu.

  • Semakan kekal dalam skop yang sempit, menjadikan maklum balas lebih cepat.
  • Konflik berkurangan kerana setiap PR hanya menyentuh kod yang diperkenalkan dalam lapisannya sendiri.
  • UI menunjukkan hierarki stack, dan GitHub CLI menawarkan satu baris arahan untuk memulakan siri stacked PRs.
gh pr create --title Feature A --base main
gh pr create --title Feature B --base feature-a
gh pr create --title Feature C --base feature-b

Contoh baris arahan tersebut mencipta tiga PR yang saling berkaitan, di mana setiap satu bergantung kepada yang sebelumnya. Aliran kerja yang sama juga tersedia melalui antara muka web, di mana anda boleh menyusun semula atau membuang PR daripada stack tanpa menjejaskan yang lain.

Siapa yang bakal mendapat manfaat

Pasukan ciri yang besar dan penyelenggara sumber terbuka boleh menghantar kerja secara berperingkat tanpa mendedahkan penyemak kepada perubahan yang tidak berkaitan. Pengurus pelancaran mendapat gambaran yang lebih jelas tentang apa yang sedia untuk dihantar, kerana setiap lapisan stack boleh digabungkan mengikut jadualnya sendiri.

Perkara yang perlu dipertimbangkan

Ciri ini masih dalam fasa pratonton, jadi ia mungkin berubah sebelum pelancaran penuh. Pasukan perlu mengamalkan tabiat baharu berkaitan pencawangan (branching) dan mungkin menghadapi kes ekstrem (edge cases) apabila melakukan rebase pada stack yang telah digabungkan sebahagiannya. Dokumentasi masih dalam pembangunan, jadi pengguna awal mungkin perlu meluangkan masa tambahan untuk mempelajari petunjuk UI.

Apa yang perlu diperhatikan seterusnya

GitHub berkemungkinan akan memperkenalkan integrasi yang lebih erat dengan code-owners dan alat automasi, serta mungkin mendedahkan metrik tentang pengurangan konflik. Perhatikan halaman pengumuman pratonton untuk kemas kini mengenai masa GA (general availability).

Rumusan: Stacked pull requests memberikan cara praktikal kepada pembangun untuk mengawal perubahan besar, menukarkan satu PR yang sarat dengan konflik kepada urutan yang mudah diurus dan mesra semakan. Jika aliran kerja anda sering bergelut dengan semakan yang lama dan masalah penggabungan, fasa pratonton ini berbaloi untuk dicuba.