Strumenti Dev

Stacked Pull Request su GitHub: come funzionano

Basta PR gigantesche che nessuno vuole rivedere: GitHub porta le pull request impilate in preview pubblica per tutti.

Il problema che risolvono

Chiunque abbia lavorato su una feature grossa conosce il dilemma: o apri un'unica PR enorme che il reviewer rimanda di giorno in giorno perché richiede troppo tempo, oppure spezzi il lavoro in più branch che devi rebasare a mano ogni volta che la prima cambia. Entrambe le strade rallentano tutti. Le stacked pull request (PR impilate) sono la risposta di GitHub, ora in preview pubblica su tutti i repository: una serie ordinata di PR, ognuna che rappresenta un livello focalizzato del cambiamento complessivo, dove ogni PR successiva punta a quella sottostante invece che al branch principale.

Il team di Next.js in Vercel le usa da mesi proprio per questo: introdurre modifiche piccole mentre si spedisce una feature più grande, mantenendo ogni singola revisione gestibile. TED ha raccontato un problema simile — l'IA ha reso gli sviluppatori più produttivi, ma le PR sono cresciute a dismisura e i reviewer faticavano a starci dietro. Spezzare il cambiamento in livelli ordinati per dipendenza ha rimesso ordine nel flusso di revisione.

Come funziona in pratica

Il concetto di base: parti da un branch e una PR per il primo cambiamento. Poi aggiungi branch e PR sopra, ciascuna con target il layer sotto invece di main. Ogni PR nella pila si rivede da sola, mostrando solo il diff di quel livello specifico — non l'intero cambiamento cumulato. Una "stack map" in cima alla PR fa vedere come quel pezzo si inserisce nel lavoro più ampio, così chi rivede capisce il contesto senza dover aprire tutte le altre PR una per una.

La parte più comoda arriva al merge: puoi far confluire l'intera pila in un click, oppure integrare solo i livelli più bassi già pronti mentre quelli sopra restano aperti, si aggiornano da soli (rebase e retarget automatici) e continuano il loro percorso di revisione. Le protezioni sul branch principale e i check richiesti continuano a valere come sempre, non vengono aggirati da questo meccanismo.

Per iniziare basta l'estensione ufficiale della CLI: gh extension install github/gh-stack. Da lì puoi creare e gestire le pile sia da terminale sia da github.com, e anche tramite agenti di coding come GitHub Copilot, che dispone di una skill dedicata proprio per lavorare con gh-stack.

Esempi pratici

Fonti: Stacked pull requests are now in public preview su GitHub Changelog