Skip to main content

Fusion des demandes de tirage empilées

Fusionnez une pile du bas vers le haut, individuellement ou dans des groupes contigus.

Remarque

Cette fonctionnalité est disponible en préversion publique et peut être modifiée.

Les demandes de tirage empilées fusionnent du bas (le plus proche de la jonction) vers le haut.

  • Vous pouvez fusionner n’importe quel nombre de demandes de tirage à la fois, tant qu’elles forment un groupe contigu à partir de la demande de tirage non fusionnée la plus basse.
  • Vous ne pouvez pas fusionner une demande de tirage intermédiaire en isolation, les demandes de tirage en dessous de celle-ci sont toujours fusionnées avec elle.

Exigences pour la fusion

La zone de fusion d’une demande de tirage empilée affiche l’état de l’ensemble de la pile, pas seulement la demande de tirage actuelle. Avant qu’une demande de tirage dans la pile puisse fusionner, les éléments suivants doivent être vrais :

  • Toutes les demandes de tirage ci-dessous sont approuvées et ont passé des vérifications.
  • La pile a un historique linéaire.
  • La demande de tirage actuelle répond à toutes les exigences de protection de branche pour la base de pile, par mainexemple .

Si la pile n’est pas linéaire, par exemple, une fois les modifications envoyées à une branche inférieure ou après le déplacement de la jonction vers l’avant, un bouton de pile de rebase s’affiche dans la zone de fusion et vous devez rebaser la pile avant de pouvoir fusionner.

Remarque

  • Si vous fusionnez via l’API et que vous souhaitez utiliser des demandes de tirage empilées, vous devez mettre à jour votre code pour utiliser la nouvelle API de fusion pour les piles. Consultez « Points de terminaison d’API REST pour les pull requests ».
  • La fusion automatique n’est pas prise en charge pour les demandes de tirage empilées.

Fusion à l’aide d’une file d’attente de fusion

Les piles prennent entièrement en charge les files d’attente de fusion. Toutes les demandes de tirage dans la pile sont ajoutées à la file d’attente dans l’ordre correct. Si une demande de tirage est supprimée ou éjectée de la file d’attente, toutes les demandes de tirage au-dessus de la pile sont également supprimées.

Remarque

Pour conserver une pile ensemble, la file d’attente de fusion permet au groupe de fusion de dépasser sa taille maximale configurée de jusqu’à 50 %. Si la pile est trop grande pour s’adapter à cette mémoire tampon, elle est automatiquement répartie entre les groupes de fusion consécutifs.

Fusion à partir du bas vers le haut

  1. Accédez à la demande de tirage non fusionnée la plus basse dans la pile ou à une demande de tirage supérieure si vous souhaitez fusionner un groupe contigu jusqu’à ce point.

  2. Vérifiez que la demande de tirage et toutes les demandes de tirage ci-dessous répondent aux exigences de fusion.

  3. Fusionner la requête de tirage. La demande de tirage sélectionnée et toutes les demandes de tirage non fusionnées situées en dessous de celle-ci se retrouvent sur la branche de base en tant qu’opération unique, classées à partir du bas dans l’historique résultant.

Après la fusion, la demande de tirage non fusionnée suivante est automatiquement rebaseée pour cibler la base de pile directement, de sorte qu’elle se déplace vers le bas et est prête à passer en revue et à fusionner.

Une fois que chaque demande de tirage dans une pile a fusionné, la pile est terminée et ne peut pas être étendue. Si vous ajoutez de nouvelles branches en haut et exécutez gh stack submit, GitHub CLI démarre automatiquement une nouvelle pile enracinée au niveau de la jonction pour ces branches.