Skip to main content

Consulter des pull requests localement

Quand quelqu'un vous envoie une pull request depuis un fork ou une branche de votre dépôt, vous pouvez la fusionner localement pour résoudre un conflit de merge ou pour tester et vérifier les modifications avant de la fusionner sur GitHub.

Platform navigation

Tool navigation

Remarque

Les auteurs de demandes de tirage peuvent donner aux responsables de référentiel en amont, ou ceux disposant d’un accès push au référentiel en amont, l’autorisation d’effectuer des validations sur la branche de comparaison de leur demande de tirage dans une duplication appartenant à l’utilisateur. Pour plus d’informations, consultez « Autoriser les modifications sur une branche de pull request créée à partir d’un fork ».

Modification d’une demande de tirage active localement

  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 des pull requests, cliquez sur la pull request que vous souhaitez modifier.

  3. Dans la zone de fusion, cliquez sur les instructions de ligne de commande. Suivez la séquence d’étapes pour afficher la demande de tirage proposée.

    Capture d’écran de la zone de fusion dans une pull request. Le lien pour accéder aux instructions de pull request sur la ligne de commande est indiqué en orange foncé.

  4. Si vous le souhaitez, pour afficher les modifications proposées dans GitHub Desktop, à côté du bouton Fusionner la pull request, cliquez sur Ouvrir dans GitHub Desktop.

    Capture d’écran de la section « Messages de fusion » sur une page de pull request. Un lien intitulé « Ouvrir ceci dans GitHub Desktop » est décrit en orange.

Remarque

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

Pour vérifier une pull request localement, utilisez la sous-commande gh pr checkout. Remplacez PULL-REQUEST par le numéro, l’URL ou la branche principale du pull request.

gh pr checkout PULL-REQUEST

Modification d'un pull request inactif localement

Si l’auteur d'une pull request ne répond pas aux demandes ou a supprimé son fork, les modifications proposées dans cette pull request peuvent toujours être fusionnées via une nouvelle pull request. Toutefois, si vous souhaitez apporter des modifications à une demande de tirage et que l’auteur ne répond pas, vous devez effectuer certaines étapes supplémentaires pour mettre à jour la demande de tirage.

Une fois un pull request ouvert, GitHub stocke toutes les modifications de manière distante. En d’autres termes, les validations dans une pull request sont disponibles dans un référentiel même avant de fusionner la pull request. Vous pouvez extraire une pull request ouverte et la recréer comme la vôtre.

N’importe qui peut utiliser une demande de tirage ouverte précédemment pour continuer à travailler dessus, la tester ou même ouvrir une nouvelle demande de tirage avec des modifications supplémentaires. Toutefois, seuls les collaborateurs ayant des droits de push peuvent fusionner les pull requests.

  1. Sous le nom de votre référentiel, cliquez sur Problèmes ou Demandes de tirage.

    Capture d’écran de la page principale d’un dépôt. Dans la barre de navigation horizontale, les onglets « Problèmes » et « Demandes de tirage » sont mis en évidence en orange.

  2. Dans la liste « Pull Requests », cliquez sur la pull request que vous souhaitez fusionner.

  3. Recherchez le numéro d’ID du pull request inactif. Il s'agit de la séquence de chiffres juste après le titre de la requête de tirage.

    Capture d’écran du titre d’une demande de tirage. Le numéro d’identification de la demande de tirage est indiqué en orange foncé.

  4. Ouvrez TerminalTerminalGit Bash.

  5. Récupérez la référence à la pull request en fonction de son identifiant, en créant une nouvelle branche dans le processus.

    git fetch origin pull/ID/head:BRANCH_NAME
    
  6. Passez à la nouvelle branche basée sur ce pull request :

    [main] $ git switch BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
    
  7. À ce stade, vous pouvez faire tout ce que vous voulez avec cette branche. Vous pouvez exécuter des tests locaux ou fusionner d’autres branches dans la branche.

  8. Lorsque vous êtes prêt, vous pouvez pousser la nouvelle branche :

    [pull-inactive-pull-request] $ git push origin BRANCH_NAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://HOSTNAME/USERNAME/REPOSITORY.git
    >  * [new branch]      BRANCH_NAME -> BRANCH_NAME
    
  9.        [Créez une demande de tirage](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) avec votre nouvelle branche.
    

Erreur : Échec de l’envoi de certaines références

L’espace de noms distant refs/pull/ est en lecture seule. Si vous essayez d’envoyer des validations là-bas, vous verrez cette erreur :

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

Conseil

Lorsque vous supprimez ou renommez une référence distante, votre espace de noms refs/pull/origin/ local n’est pas affecté par les appels à git-remote.