Fusionner la requête d’extraction vers une twig différente de celle par défaut, dans Github

Une demande de tirage arrive dans mon repository hébergé sur Github. Par défaut, il est fusionné dans la twig principale.

Y a-t-il un moyen de changer la twig dans laquelle les changements seraient fusionnés?

A partir du 15.08.2016, GitHub permet de modifier la twig cible d’une requête pull via l’interface graphique:

capture d'écran

Vous pouvez maintenant modifier la twig de base d’une requête de tirage ouvert. Une fois que vous avez créé une demande d’extraction, vous pouvez modifier la twig de base afin que les modifications apscopes à la requête d’extraction soient comparées à une autre twig. En changeant la twig de base de votre requête d’extraction initiale plutôt qu’en en ouvrant une nouvelle avec la twig de base correcte, vous pourrez conserver un travail et des discussions utiles.

L’émetteur peut changer cela lorsqu’il émet la requête d’extraction, mais une fois qu’il l’a émis, vous ne pouvez pas le modifier.

D’autre part, vous pouvez fusionner manuellement leur twig et pousser, ce que je fais semi-régulièrement pour les requêtes d’extraction erronées.

Vous pouvez trouver le joyau du hub utile dans l’utilisation des composants de la requête d’extraction.

Ce bijou englobe le processus manuel, à savoir:

  1. Ajoutez une télécommande pour la fourche à votre caisse locale.
  2. Récupère cette télécommande.
  3. git checkout ${target_branch} && git merge ${remote}/${branch}
  4. git push origin ...

Une alternative à l’utilisation du hub mentionné par d’autres réponses consiste à utiliser la ligne de commande pour fusionner localement les requêtes pull , ce qui vous permet de faire:

 $ git fetch origin $ git checkout *target_branch* $ git merge pr/XXX $ git push origin *target_branch* 

Les commandes ci-dessus ne fonctionnent directement que si vous ajoutez d’abord la ligne suivante à votre fichier .git/config :

 fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/* 

Cela vous permet de télécharger TOUTES les demandes de tirage. Comme cela n’est peut-être pas souhaitable pour les git fetch origin pull/ID/head:BRANCHNAME importantes, GitHub a modifié les instructions pour git fetch origin pull/ID/head:BRANCHNAME syntaxe git fetch origin pull/ID/head:BRANCHNAME , qui évite la modification du fichier de configuration et ne télécharge que cette requête.

Bien que vous ne puissiez pas modifier la requête pull existante car ce n’est pas la vôtre, vous pouvez facilement en créer une si le référentiel source associé existe toujours – oui, même s’il s’agit de quelqu’un d’autre.

Accédez au référentiel de l’émetteur, puis créez une nouvelle requête d’extraction dans son référentiel en utilisant les mêmes commits, mais assurez-vous de définir correctement la bonne twig cible.

Revenez ensuite à votre propre référentiel et acceptez la nouvelle demande d’extraction. Voila!

Il n’y a rien de mal avec la solution de Daniel Pittman, mais je considérerais ces fusions comme “pas d’avance rapide”, c’est-à-dire en changeant l’étape numéro 3 pour:

 git checkout ${target_branch} && git merge --no-ff ${remote}/${branch} 

En utilisant --no-ff , l’historique sera plus facile à lire. Cela indiquera clairement que $n commits provient de $branch , et cela vous facilitera également la vie si vous devez annuler quelque chose dans cette twig.

Pour répondre également à la question de eoinoc et donner un conseil supplémentaire:

Après avoir fait la fusion, votre git cli vous invitera à écrire un message, généralement un message générique apparaîtra

Fusionnez la twig de suivi à distance ‘utilisateur / leur twig’ dans votre twig

Assurez-vous de modifier ce message et d’inclure une référence au numéro de demande d’extraction. C’est-à-dire: (En supposant que le numéro de la requête d’extraction est 123)

Fusionnez la twig de suivi à distance ‘utilisateur / leur twig’ dans votre twig

Réf. 123 Résoudre quoi que ce soit …

Ainsi, la prochaine fois que vous visiterez votre page github questions / pull-requêtes et que vous vérifierez cette requête, vous verrez votre message avec un lien à valider lors de la fusion.

Voici une capture d’écran de ce que je veux dire.

entrer la description de l'image ici

Pour ce faire, accédez à la page d’accueil de votre référentiel, cliquez sur les twigs, et changez la twig par défaut de master en quelque chose d’autre, dans mon cas “dev”.

Après cela, chaque fois que quelqu’un crée une demande d’extraction, le bouton de fusion fusionne automatiquement la demande avec “dev” plutôt que master.

entrer la description de l'image ici