Skip to main content

Fusion d'une pull request

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 un pull request, vous proposez que les modifications que vous avez apportées sur une branche de tête soient fusionnées dans une branche de base. Par défaut, toute pull request peut être fusionnée à tout moment, sauf si la branche de tête est en conflit avec la branche de base. Cependant, il peut y avoir des restrictions sur quand vous pouvez fusionner une pull request 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 ».

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 pull request ».

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 une pull request en brouillon. Pour plus d’informations sur les brouillons de pull request, 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).

Si vous décidez de ne pas fusionner les modifications apportées à une branche thématique dans la branche en amont, vous pouvez fermer la pull request sans fusionner.

Fusion d'une pull request

  1. Sous le nom de votre 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 « Pull Requests », cliquez sur la pull request que vous souhaitez fusionner.

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

    •     [Fusionner tous les commits dans la branche de base](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) en cliquant sur **Fusionner la pull request**. Si l’option **Fusionner la pull request** n’est pas affichée, cliquez sur le menu déroulant Merge et sélectionnez **Créer un commit de fusion**.
      

      Capture d’écran des options de fusion d'une pull request. La flèche pour développer la liste déroulante est indiquée en orange foncé.

    • Fusionnez les commits en un seul 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](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#rebase-and-merge-your-pull-request-commits) en cliquant sur le menu déroulant de fusion, en sélectionnant **Rebasage et fusion**, puis en cliquant sur **Rebasage et fusion**.
      

    Remarque

    Rebase et fusion mettront toujours à jour les informations du committer et créeront de nouveaux SHAs de commit. 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, 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, le mode sans réponse sera utilisé par défaut pour l’adresse e-mail de l’auteur de commit. Pour plus d’informations sur la forme exacte que l’adresse e-mail sans réponse peut prendre, 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.

Remarque

Pour plus d’informations sur GitHub CLI, consultez À propos de l’interface CLI GitHub.

Pour fusionner une demande de tirage, utilisez la sous-commande gh pr merge. Remplacez pull-request par le numéro, l’URL ou la branche principale du pull request.

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

  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request)
    
  •         [AUTOTITLE](/desktop/keeping-your-local-repository-in-sync-with-github/syncing-your-branch) avec GitHub Desktop
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts)