Skip to main content

Fusion d’une demande de tirage

Fusionnez une demande de tirage (pull request) dans la branche en amont quand le travail est terminé. Toute personne disposant d’un accès en poussée (push) au dépôt peut effectuer la fusion.

Tool navigation

À propos des fusions de demande de tirage

Dans une demande de tirage, vous proposez que les modifications que vous avez apportées sur une branche de tête doivent être fusionnées dans une branche de base. Par défaut, toute demande de tirage peut être fusionnée à tout moment, sauf si la branche principale est en conflit avec la branche de base. Mais il peut y avoir des restrictions sur le moment où vous pouvez fusionner une demande de tirage dans une branche spécifique. Par exemple, vous pouvez uniquement fusionner une demande de tirage dans la branche par défaut si les vérifications d’état requises aboutissent. Les administrateurs de référentiels peuvent ajouter des contraintes de ce type aux branches à l’aide des règles de protection de branche. Pour plus d’informations, consultez « À propos des branches protégées ».

En guise d’alternative aux règles de protection de branche ou aux règles de protection des balises, vous pouvez créer des ensembles de règles. Les ensembles de règles présentent quelques avantages par rapport aux règles de protection des branches et des balises, telles que les états et une meilleure détectabilité sans nécessiter d’accès administrateur. Vous pouvez également appliquer plusieurs ensembles de règles en même temps. Pour plus d’informations, consultez « À propos des ensembles de règles ».

Vous pouvez configurer une demande de tirage pour fusionner automatiquement lorsque toutes les conditions de fusion sont remplies. Pour plus d’informations, consultez « Fusion automatique d'une demande de tirage ».

Si la demande de tirage présente des conflits de fusion ou si vous souhaitez tester les modifications avant de fusionner, vous pouvez extraire la demande de tirage localement et la fusionner à l’aide de la ligne de commande.

Vous ne pouvez pas fusionner un brouillon de demande de tirage. Pour plus d’informations sur les brouillons de demande de tirage, consultez « À propos des demandes de tirage (pull requests) ».

Le référentiel peut être configuré afin que la branche principale d’une demande de tirage soit automatiquement supprimée lorsque vous fusionnez une demande de tirage. Pour plus d’informations, consultez « Gestion de la suppression automatique des branches ».

Remarque : Si vous supprimez une branche de tête (head) une fois que sa demande de tirage a été fusionnée, GitHub recherche les demandes de tirage ouvertes du même dépôt qui spécifient la branche supprimée comme branche de base. GitHub met automatiquement à jour ces demandes de tirage, en remplaçant leur branche de base par la branche de base de la demande de tirage fusionnée. Pour plus d’informations, consultez « À propos des branches ».

Les requêtes de tirage sont fusionnées à l’aide de l’option --no-ff, à l’exception des requêtes de tirage avec validations écrasées ou rebasées, qui sont fusionnées à l’aide de l’option fast-forward (avance rapide).

Vous pouvez lier une demande de tirage à un problème pour montrer qu’un correctif est en cours et fermer automatiquement le problème lorsque quelqu’un fusionne la demande de tirage. Pour plus d’informations, consultez « Relier une demande de tirage à un problème ».

Si vous décidez de ne pas fusionner les modifications apportées à une branche de rubrique dans la branche en amont, vous pouvez fermer la demande de tirage sans fusionner.

Fusion d’une demande de tirage

  1. Sous le nom du référentiel, cliquez sur Demandes de tirage.

    Capture d’écran de la page principale d’un dépôt. Dans la barre de navigation horizontale, un onglet intitulé « Demandes de tirage » est indiqué en orange foncé.

  2. Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous souhaitez fusionner.

  3. Faites défiler jusqu’en bas de la demande de tirage. Selon les options de fusion activées pour votre référentiel, vous pouvez :

    Remarque : la rebase et la fusion mettent toujours à jour les informations du validateur et créent de nouvelles autorités de certification de validation. Pour plus d’informations, consultez « À propos des fusions de demandes de tirage ».

  4. Si vous y êtes invité, tapez un message de commit ou acceptez le message par défaut.

    Pour plus d’informations sur les messages de commit par défaut pour les fusions Squash, consultez « À propos des fusions de demande de tirage ».

  5. Si vous avez plusieurs adresses e-mail associées à votre compte sur GitHub.com, cliquez sur le menu déroulant d’adresses e-mail et sélectionnez l’adresse e-mail à utiliser comme adresse e-mail de l’auteur Git. Seules les adresses e-mail vérifiées apparaissent dans ce menu déroulant. Si vous avez activé la confidentialité de l’adresse e-mail, <username>@users.noreply.github.com est l’adresse e-mail par défaut de l’auteur de commit. Pour plus d’informations, consultez « Définition de votre adresse e-mail de commit ».

    Capture d’écran d’une demande de tirage GitHub montrant un menu déroulant avec des options permettant de choisir l’adresse e-mail de l’auteur du commit. octocat@github.com est sélectionné.

    Remarque : le sélecteur d’e-mail n’est pas disponible pour les fusions avec rebase, qui ne créent pas de commit de fusion. Pour les fusions Squash, le sélecteur d’e-mail s’affiche uniquement si vous êtes l’auteur de la demande de tirage et que vous avez plusieurs adresses e-mail associées à votre compte.

  6. Cliquez sur Confirmer la fusion, Confirmer l’écrasement et la fusion, ou Confirmer la rebase et la fusion.

  7. Si vous le souhaitez, supprimez la branche. Cela permet de garder la liste des branches de votre référentiel bien ordonnée.

Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».

Pour fusionner une demande de tirage, utilisez la sous-commande gh pr merge. Remplacez pull-request par le nombre, l’URL ou la branche de tête de la demande de tirage.

gh pr merge PULL-REQUEST

Suivez les invites interactives pour terminer la fusion. Pour plus d’informations sur les méthodes de fusion que vous pouvez choisir, consultez « À propos des fusions de demande de tirage ».

Vous pouvez également utiliser des indicateurs pour ignorer les invites interactives. Par exemple, cette commande va écraser les validations en une seule validation avec le message de validation « my squash commit », fusionner la validation écrasée dans la branche de base, puis supprimer la branche locale et distante.

gh pr merge 523 --squash --body "my squash commit" --delete-branch

Pour aller plus loin