GitHub telah memindahkan stacked pull requests ke dalam preview publik, memungkinkan pengembang untuk membagi perubahan besar menjadi rangkaian PR yang saling bergantung yang dapat ditinjau dan digabungkan secara independen.

Mengapa fitur ini penting

Satu PR monolitik sering kali membengkak menjadi proses review selama sebulan, di mana reviewer terpaksa menelusuri kode yang tidak terkait. Ketika base branch berubah, perubahan masif tersebut rentan terhadap konflik merge yang dapat menghambat rilis. Stacked PR mengatasi kedua masalah tersebut dengan mengubah satu diff besar menjadi serangkaian diff kecil yang terfokus, di mana masing-masing dibangun di atas diff sebelumnya.

Cara kerjanya

Buat PR pertama terhadap branch utama, lalu jadikan PR berikutnya berbasis pada PR pertama, yang ketiga berbasis pada yang kedua, dan seterusnya. GitHub melacak hubungan tersebut secara otomatis: jika Anda mengubah (amend) PR dasar, PR yang bergantung padanya akan diperbarui untuk mencerminkan status terbaru. Reviewer dapat menyetujui seluruh stack dengan satu klik atau menyetujui lapisan individual secara terpisah.

  • Review tetap pada cakupan yang sempit, membuat umpan balik menjadi lebih cepat.
  • Konflik berkurang karena setiap PR hanya menyentuh kode yang diperkenalkan di lapisannya sendiri.
  • UI menampilkan hierarki stack, dan GitHub CLI menawarkan perintah satu baris (one-liner) untuk membuat serangkaian stacked PR.
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 perintah tersebut membuat tiga PR yang saling terhubung, yang masing-masing bergantung pada PR sebelumnya. Alur kerja yang sama juga tersedia melalui antarmuka web, di mana Anda dapat mengatur ulang atau menghapus PR dari stack tanpa merusak PR lainnya.

Siapa yang akan diuntungkan

Tim fitur besar dan pemelihara open-source dapat mengirimkan pekerjaan secara inkremental tanpa membebani reviewer dengan perubahan (churn) yang tidak terkait. Manajer rilis mendapatkan gambaran yang lebih jelas tentang apa yang siap dikirim, karena setiap lapisan stack dapat digabungkan sesuai jadwalnya sendiri.

Hal yang perlu diperhatikan

Fitur ini masih dalam tahap preview, jadi mungkin akan berubah sebelum rilis penuh. Tim perlu mengadopsi kebiasaan baru seputar branching dan mungkin akan menemui kasus ekstrem (edge cases) saat melakukan rebase pada stack yang sudah digabungkan sebagian. Dokumentasi masih terus berkembang, sehingga pengguna awal mungkin perlu meluangkan waktu ekstra untuk mempelajari petunjuk UI.

Apa yang perlu dipantau selanjutnya

GitHub kemungkinan akan meluncurkan integrasi yang lebih erat dengan code-owners dan alat otomatisasi, serta mungkin menampilkan metrik pengurangan konflik. Pantau terus halaman pengumuman preview untuk pembaruan mengenai waktu GA (general availability).

Intisari: Stacked pull requests memberikan cara praktis bagi pengembang untuk menjinakkan perubahan masif, mengubah satu PR yang penuh konflik menjadi urutan yang mudah dikelola dan ramah untuk ditinjau. Jika alur kerja Anda sering bergelut dengan review yang panjang dan masalah merge, versi preview ini layak untuk dicoba.