À 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, 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, 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
Note
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