Comment modifier une pull request sur GitHub pour changer la branche cible dans laquelle fusionner?

117

J'ai une pull request qui demande une fusion dans master depuis ma branche, mais le propriétaire veut que je modifie la demande de fusion dans une branche différente de ma branche.

Est-ce possible? Quelles sont les solutions possibles?

Moriarty
la source

Réponses:

138

Mise à jour août 2016: Changer la branche de base d'une Pull Request permet enfin de changer cette branche.
(Et cela clôt le numéro 18 , qui avait 3 ans et qui avait plus de 1500 commentaires)

Une fois que vous avez créé une demande d'extraction, vous pouvez modifier la branche de base afin que les modifications de la demande d'extraction soient comparées à une autre branche.

entrez la description de l'image ici


Réponse originale:

Puisqu'un PR ne peut pas être édité en terme de branche (voir ci-dessous), le plus simple serait de:

  • créer une nouvelle branche locale au-dessus de votre branche actuelle
  • pousser cette nouvelle branche
  • faire un nouveau PR avec la bonne destination.
  • fermer le précédent PR
  • référence la "vieille" demande d'extraction de la nouvelle; par exemple. Supersedes #123(comme commenté ci-dessous par Rivera )

(réponse originale, valable uniquement lors de la création du PR )

Vous pouvez essayer de choisir une autre branche de base , comme dans " Modification de la plage de branches et du référentiel de destination " (en cliquant sur le Editbouton en haut d'une page PR)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

La façon la plus simple de penser à la gamme de branches est la suivante:

  • la branche de base est l'endroit où vous pensez que les changements devraient être appliqués,
  • la branche principale est ce que vous souhaitez appliquer.

La modification du référentiel de base change la notification de la demande d'extraction.
Toutes les personnes qui peuvent pousser vers le référentiel de base recevront une notification par e-mail et verront la nouvelle demande d'extraction dans leur tableau de bord lors de leur prochaine connexion.

Si vous sélectionnez comme branche de base celle souhaitée par le responsable d'origine (le propriétaire), votre PR doit fusionner de votre branche (inchangée) vers la nouvelle branche de base.

VonC
la source
@Moriarty Je n'ai pas de PR en cours, mais en tant que créateur du PR, vous ne voyez pas de bouton Modifier une fois votre PR envoyé?
VonC le
3
Oui, mais cela me permet seulement de modifier le nom du PR. Je suppose que vous ne pouvez pas modifier directement la fusion des relations publiques en succursale lors de la soumission. Je me demande s'il existe une alternative (moyen de fusionner un PR dans une autre branche quand même).
Moriarty du
2
Une demande de fonctionnalité est ouverte pour pouvoir changer la branche cible d'un PR: github.com/isaacs/github/issues/18
Jason Antman
1
C'est aussi une bonne idée de faire référence à l '«ancienne» requête d'extraction de la nouvelle (par exemple, remplace # 123).
Rivera
1
@Shimmy Je ne pense pas, pas de l'interface graphique Web.
VonC
6

Si votre succursale est (toujours) disponible à distance, vous n'avez pas à créer une nouvelle succursale localement.

  • Sélectionnez votre branche (qui porte les modifications que vous soumettez) soit directement dans le menu déroulant, soit sous «# branches» ( https://github.com/account/project/branches ).

  • Cliquez sur "Nouvelle demande d'extraction". Cela vous permet de choisir une nouvelle branche de base (cible).

Voici une capture d'écran de la nouvelle interface de Github: entrez la description de l'image ici

Je peux soumettre un PR de branche UXcontre n'importe quelle branche / branche --- peu importe si j'ai déjà soumis un PR pour la branche UX.

mkcor
la source
1
Le bouton vert "Nouvelle demande d'extraction" est déplacé vers la page Web de la liste des RP, dans le coin supérieur droit.
Golden Thumb
Je ne suis pas sûr de ce que vous entendez par "est déplacé" mais, oui, vous pouvez trouver le bouton vert "Nouvelle demande d'extraction" aux deux endroits.
mkcor
4

Vous pouvez maintenant: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Vous pouvez maintenant modifier la branche de base d'une demande d'extraction ouverte. Après avoir créé une demande d'extraction, vous pouvez modifier la branche de base afin que les modifications de la demande d'extraction soient comparées à une autre branche. En changeant la branche de base de votre demande d'extraction d'origine plutôt que d'en ouvrir une nouvelle avec la branche de base appropriée, vous serez en mesure de conserver un travail et des discussions précieux. "

MK.
la source
2

Vous devez créer une nouvelle pull request comme mentionné dans la doc de gibhub LINK

  1. Sélectionnez d'abord New Pull request
  2. dans le compare pagecôté gauche, sélectionnez celui que target branchvous souhaitez pousser et à droite sélectionnez le branch you already pushed.
  3. Mettez à jour les détails de votre nouveau PR.
  4. Créer le PR
Ani Thettayil
la source
-4

C'est assez simple. Cliquez simplement sur le PR pour lequel vous souhaitez modifier sa branche de base. Recherchez le bouton "Fermer la demande de tirage" en bas de la page Web. Maintenant, vous pouvez recréer normalement un nouveau PR - assurez-vous de sélectionner la branche de base correcte cette fois.

Pouce d'or
la source
Je ne vois pas pourquoi ce vote est défavorable. Cela a parfaitement fonctionné pour moi.
Wilt
3
Je n'ai pas voté. Mais je vois que cette réponse ne fait que répéter les anciennes réponses existantes (et cela avec moins de qualité).
Lars Blumberg
@LarsBlumberg Si vous lisez attentivement, vous devriez remarquer que ce n'est pas une répétition, même s'il peut y avoir des chevauchements. Pour moi, si (n -1) étapes, au lieu de n étapes, peuvent résoudre le problème, cela vaut la peine d'être partagé :-)
Golden Thumb
2
Si (n-1) étapes omettent des étapes utiles telles que la fermeture de l'ancien PR et le référencement dans le nouveau, je ne vois pas l'intérêt de répéter un sous-ensemble d'étapes à partir d'une réponse déjà existante. Surtout lorsque la liste des étapes en moins est plus difficile à lire en raison du manque de formatage approprié.
Lars Blumberg