À 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 ».
Note
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
-
Sous le nom du référentiel, cliquez sur Demandes de tirage.
-
Dans la liste « Demandes de tirage », cliquez sur la demande de tirage que vous souhaitez fusionner.
-
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 :
-
Fusionner toutes les validations dans la branche de base en cliquant sur Fusionner la demande de tirage. Si l’option Fusionner la demande de tirage n’est pas affichée, cliquez sur le menu déroulant de fusion et sélectionnez Créer un commit de fusion.
-
Faites un squash des commits en un seul commit en cliquant sur le menu déroulant de fusion, en sélectionnant Squash et fusion, puis en cliquant sur Squash et fusion.
-
Rebasez les commits individuellement sur la branche de base en cliquant sur le menu déroulant de fusion, en sélectionnant Rebasage et fusion, puis en cliquant sur Rebasage et fusion.
Note
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 ».
-
-
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 ».
Note
Le sélecteur d’e-mail n’est pas disponible pour les fusions avec rebase, qui ne créent pas de commit de fusion, ou pour les fusions Squash, qui créditent l’utilisateur qui a créé la demande de tirage en tant qu’auteur du commit écrasé.
-
Cliquez sur Confirmer la fusion, Confirmer l’écrasement et la fusion, ou Confirmer la rebase et la fusion.
-
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