Approche de Développement

Pull requests empilées ou une seule grosse pull request : quelle forme de revue pour le code généré par IA ?

Pull requests empilées ou une grosse PR : taille de revue, coût du rebase, commits signés et agents, chiffres 2026.

4
Pull requests empilées
vs
2
Une seule grosse pull request
Verdict Rapide

Choisissez les pull requests empilées lorsque votre goulot d'étranglement est la capacité de revue et que le changement présente des couches naturelles. C'est désormais le cas courant : le directeur technique de TED décrit exactement ce mécanisme dans l'annonce de GitHub — l'IA a rendu les développeuses et développeurs nettement plus productifs, et la nouvelle contrainte est devenue des pull requests si volumineuses que les relecteurs peinaient. Les données soutiennent l'unité plus petite : une analyse de 1,5 million de pull requests citée au lancement montre que celles comptant de 200 a 400 lignes modifiées présentaient 40 % de défauts en moins et étaient approuvées trois fois plus vite que les plus grosses. Une pile est précisément le mécanisme qui maintient chaque pull request dans cette fourchette, même pour une fonctionnalité conséquente. Choisissez une pull request unique lorsque le changement ne porte réellement que sur un seul sujet, lorsque votre dépôt exige des commits signés et que l'équipe n'empruntera pas de manière fiable le chemin local gh stack rebase, ou lorsque la fonctionnalité demanderait plus de trois ou quatre couches. Ce plafond n'est pas arbitraire : la pratique rapporte trois a quatre pull requests par pile, au-delà desquelles le suivi des dépendances coûte plus d'attention que les diffs réduits n'en font gagner. Une pile de cinq couches que personne ne rebase correctement vaut moins qu'un gros diff assumé. Le facteur décisif n'est pas la maturité de l'outillage mais l'identité de qui écrit le code. Un agent entraîné sur dix ans de pull requests monolithiques produira une pull request monolithique tant que vous ne lui direz pas autre chose, et découper après coup un diff terminé de 1 700 lignes est nettement plus pénible que de le construire en couches. Installez la compétence d'agent, donnez à chaque couche un périmètre défini et une personne responsable, et la décomposition se produit au moment de l'écriture, là où elle coûte peu. Sautez cette étape et les pull requests empilées ne sont plus que des branches supplémentaires à rebaser. La forme de la revue doit être une contrainte imposée a l'agent, pas une tâche de nettoyage laissée a l'humain.

Comparaison Détaillée

Une analyse comparative des facteurs clés pour vous aider à faire le bon choix.

Facteur
Pull requests empiléesRecommandé
Une seule grosse pull requestGagnant
Taille de l'unité soumise a la revue
Chaque couche ne porte que sur un seul sujet et reste dans la fourchette de 200 à 400 lignes modifiées, là où la revue est mesurablement la plus efficace.
La fonctionnalité entière arrive en un seul diff ; l'exemple de GitHub compte 1 721 lignes modifiées avant décomposition.
Répartition des relecteurs
La couche de données est relue par la personne responsable des données, l'interface par celle qui la maîtrise, et les couches se relisent en parallèle.
Une seule personne doit tenir en tête le modèle de données, le contrat d'API, le raccordement client et les états d'interface en même temps.
Délai de retour
La couche un peut être relue, corrigee et approuvee pendant que la couche quatre s'écrit encore.
Rien n'est relisible avant que la fonctionnalité entière soit terminée : tous les retours arrivent a la fin.
Cout d'une modification sur une couche basse
Une correction en bas impose un rebase en cascade de toutes les branches supérieures ; gh stack sync automatise la cascade, mais le rebase reste un vrai travail.
Une branche, un rebase, aucune chaîne de dépendances a réparer quand un retour arrive.
Mécanique de fusion
Fusionnez toute la pile en une opération, ou intégrez les couches basses et laissez les pull requests supérieures se rebaser et se recibler automatiquement.
Une fusion unique, sans état de pile à interpréter ni décision d'intégration partielle.
Commits signés et protection de branche
Le bouton de rebase dans le navigateur s'exécute sur les serveurs de GitHub, réinitialise l'auteur du commit et produit des commits non signés, ce qui casse la protection exigeant des commits signés ; gh stack rebase en local l'evite.
Aucun rebase en cascade, donc aucun auteur réinitialise ni signature perdue a surveiller.
Plafond de mise a l'échelle
La pratique situe la limite utile à trois ou quatre couches ; au-delà, le suivi des dépendances pèse plus lourd que le gain de revue.
Aucune limite structurelle de taille, mais la qualité de la revue et l'attention du relecteur déclinent a mesure que le diff grossit.
Adéquation aux agents de codage
La compétence d'agent de gh-stack apprend aux agents à découper le travail en couches ordonnées pendant l'écriture : la forme devient une contrainte et non une reprise.
Entraînés sur dix ans de pull requests monolithiques, les agents produisent par défaut un gros diff, et le découper après coup est plus pénible que de construire en couches d'emblée.
Score Total4/ 82/ 82 égalités
Taille de l'unité soumise a la revue
Pull requests empilées
Chaque couche ne porte que sur un seul sujet et reste dans la fourchette de 200 à 400 lignes modifiées, là où la revue est mesurablement la plus efficace.
Une seule grosse pull request
La fonctionnalité entière arrive en un seul diff ; l'exemple de GitHub compte 1 721 lignes modifiées avant décomposition.
Répartition des relecteurs
Pull requests empilées
La couche de données est relue par la personne responsable des données, l'interface par celle qui la maîtrise, et les couches se relisent en parallèle.
Une seule grosse pull request
Une seule personne doit tenir en tête le modèle de données, le contrat d'API, le raccordement client et les états d'interface en même temps.
Délai de retour
Pull requests empilées
La couche un peut être relue, corrigee et approuvee pendant que la couche quatre s'écrit encore.
Une seule grosse pull request
Rien n'est relisible avant que la fonctionnalité entière soit terminée : tous les retours arrivent a la fin.
Cout d'une modification sur une couche basse
Pull requests empilées
Une correction en bas impose un rebase en cascade de toutes les branches supérieures ; gh stack sync automatise la cascade, mais le rebase reste un vrai travail.
Une seule grosse pull request
Une branche, un rebase, aucune chaîne de dépendances a réparer quand un retour arrive.
Mécanique de fusion
Pull requests empilées
Fusionnez toute la pile en une opération, ou intégrez les couches basses et laissez les pull requests supérieures se rebaser et se recibler automatiquement.
Une seule grosse pull request
Une fusion unique, sans état de pile à interpréter ni décision d'intégration partielle.
Commits signés et protection de branche
Pull requests empilées
Le bouton de rebase dans le navigateur s'exécute sur les serveurs de GitHub, réinitialise l'auteur du commit et produit des commits non signés, ce qui casse la protection exigeant des commits signés ; gh stack rebase en local l'evite.
Une seule grosse pull request
Aucun rebase en cascade, donc aucun auteur réinitialise ni signature perdue a surveiller.
Plafond de mise a l'échelle
Pull requests empilées
La pratique situe la limite utile à trois ou quatre couches ; au-delà, le suivi des dépendances pèse plus lourd que le gain de revue.
Une seule grosse pull request
Aucune limite structurelle de taille, mais la qualité de la revue et l'attention du relecteur déclinent a mesure que le diff grossit.
Adéquation aux agents de codage
Pull requests empilées
La compétence d'agent de gh-stack apprend aux agents à découper le travail en couches ordonnées pendant l'écriture : la forme devient une contrainte et non une reprise.
Une seule grosse pull request
Entraînés sur dix ans de pull requests monolithiques, les agents produisent par défaut un gros diff, et le découper après coup est plus pénible que de construire en couches d'emblée.

Statistiques Clés

Données réelles provenant de sources vérifiées du secteur pour appuyer votre décision.

L'exemple de GitHub rassemble un modèle de données, une route d'API, le raccordement client et quatre états d'interface dans une seule pull request de 1 721 lignes modifiées, avant sa décomposition en quatre couches empilées.

GitHub Engineering Blog

Une analyse de 1,5 million de pull requests citée au lancement montre que celles comptant de 200 à 400 lignes modifiées présentaient 40 % de défauts en moins et étaient approuvées trois fois plus vite que les plus grosses.

InfoQ

Gartner prévoit que les agents de codage apporteront un gain de productivité de 50 % à chaque étape du cycle de vie logiciel d'ici 2028, augmentant d'autant le rythme auquel de gros diffs arrivent en revue.

Gartner, cite par GitHub Engineering

L'extension en ligne de commande gh-stack de GitHub a atteint 1 093 étoiles et sa première version balisée, v0.1.0, le 29 juillet 2026 — la veille de l'ouverture de l'aperçu public des pull requests empilées.

API REST GitHub, github/gh-stack

Les pull requests empilées sont passées en aperçu fermé le 13 avril 2026 et en aperçu public le 30 juillet 2026 ; l'annonce de l'aperçu public a atteint 780 points sur Hacker News.

GitHub Changelog

La pratique situe le plafond utile à trois ou quatre pull requests par pile, au-delà desquelles la charge mentale du suivi des dépendances pèse plus lourd que le gain de revue.

Alan West, cite par InfoQ

Toutes les statistiques proviennent de sources tierces vérifiées. La source, l'année et le lien direct sont affichés pour chaque chiffre.

Quand Choisir Chaque Option

Un guide clair basé sur votre situation spécifique et vos besoins.

Choisissez Pull requests empilées quand...

  • Le changement se découpe naturellement en couches dépendantes — données, API, raccordement, interface — avec des responsables distincts.
  • Un agent de codage a produit un diff que vous ne pouvez honnêtement pas relire en une seule séance.
  • Votre goulot d'étranglement est la capacité de revue, pas la vitesse d'écriture.
  • Vous voulez faire relire et intégrer la couche de base pendant que les couches supérieures s'ecrivent encore.

Choisissez Une seule grosse pull request quand...

  • Le changement ne porte réellement que sur un seul sujet et reste sous quelques centaines de lignes modifiées.
  • Votre dépôt exige des commits signés et l'équipe n'empruntera pas de manière fiable le chemin local gh stack rebase.
  • La fonctionnalité demanderait plus de trois ou quatre couches, là où la charge des dépendances dépasse le gain de revue.
  • Votre équipe n'a pas d'outillage compatible avec les piles et devrait entretenir la chaîne de branches a la main.

Notre Recommandation

Choisissez les pull requests empilées lorsque votre goulot d'étranglement est la capacité de revue et que le changement présente des couches naturelles. C'est désormais le cas courant : le directeur technique de TED décrit exactement ce mécanisme dans l'annonce de GitHub — l'IA a rendu les développeuses et développeurs nettement plus productifs, et la nouvelle contrainte est devenue des pull requests si volumineuses que les relecteurs peinaient. Les données soutiennent l'unité plus petite : une analyse de 1,5 million de pull requests citée au lancement montre que celles comptant de 200 a 400 lignes modifiées présentaient 40 % de défauts en moins et étaient approuvées trois fois plus vite que les plus grosses. Une pile est précisément le mécanisme qui maintient chaque pull request dans cette fourchette, même pour une fonctionnalité conséquente. Choisissez une pull request unique lorsque le changement ne porte réellement que sur un seul sujet, lorsque votre dépôt exige des commits signés et que l'équipe n'empruntera pas de manière fiable le chemin local gh stack rebase, ou lorsque la fonctionnalité demanderait plus de trois ou quatre couches. Ce plafond n'est pas arbitraire : la pratique rapporte trois a quatre pull requests par pile, au-delà desquelles le suivi des dépendances coûte plus d'attention que les diffs réduits n'en font gagner. Une pile de cinq couches que personne ne rebase correctement vaut moins qu'un gros diff assumé. Le facteur décisif n'est pas la maturité de l'outillage mais l'identité de qui écrit le code. Un agent entraîné sur dix ans de pull requests monolithiques produira une pull request monolithique tant que vous ne lui direz pas autre chose, et découper après coup un diff terminé de 1 700 lignes est nettement plus pénible que de le construire en couches. Installez la compétence d'agent, donnez à chaque couche un périmètre défini et une personne responsable, et la décomposition se produit au moment de l'écriture, là où elle coûte peu. Sautez cette étape et les pull requests empilées ne sont plus que des branches supplémentaires à rebaser. La forme de la revue doit être une contrainte imposée a l'agent, pas une tâche de nettoyage laissée a l'humain.

Questions Fréquentes

Réponses aux questions courantes sur cette comparaison.

Les pull requests empilées forment une chaîne ordonnée où chaque branche vise non pas la branche principale, mais celle située juste en dessous. Une fonctionnalité devient ainsi une suite de petites couches relisibles indépendamment : modèle de données, puis point d'entrée d'API, puis raccordement client, puis interface. GitHub l'a intégré nativement en 2026 : aperçu fermé le 13 avril, aperçu public le 30 juillet, avec l'extension gh-stack, une carte de pile en tête de chaque pull request et la fusion de toute la pile en un clic.
Oui. Les vérifications et les règles de fusion sont évaluées par rapport à la base de la pile et non au parent immediat de chaque branche : l'intégration continue s'exécute donc sur chaque couche comme si elle visait directement la branche principale, et vos protections continuent de gouverner ce qui atteint la branche principale. Une réserve compte : le bouton de rebase dans le navigateur s'exécute sur les serveurs de GitHub, ce qui réinitialise l'auteur du commit et produit des commits non signés. Si vos règles exigent des commits signés, utilisez plutôt gh stack rebase en local puis gh stack push.
Parce que le corpus d'entraînement ressemble à cela. Les agents ont appris sur dix ans de pull requests ou une fonctionnalité entière arrivait en un seul diff : une consigne donne donc un gros changement. La solution consiste à intégrer la forme de la revue dans l'instruction plutôt qu'a la traiter en reprise. Une fois la compétence d'agent gh-stack installée, les agents compatibles apprennent à initialiser une pile, à ajouter chaque couche sur celle du dessous et à ne valider que lorsque les vérifications passent. La décomposition a alors lieu pendant l'écriture, pas après.
Trois à quatre constituent le plafond utile rapporte par la pratique ; au-delà, la charge mentale du suivi des dépendances l'emporte sur le gain de revue. Visez des couches qui font chacune une seule chose et se situent entre 200 et 400 lignes modifiées : c'est la fourchette où une analyse de 1,5 million de pull requests a relevé 40 % de défauts en moins et des approbations trois fois plus rapides. Si une fonctionnalité exigeait six ou sept couches, c'est généralement le signe qu'il faut la livrér en deux fonctionnalités distinctes plutôt qu'en une pile très haute.

Besoin d'aide pour décider ?

Réservez une consultation gratuite de 30 minutes et nous vous aiderons à déterminer la meilleure approche pour votre projet spécifique.

Consultation gratuite
Sans engagement
Réponse sous 24h