Une pull request arrive dans mon dépôt hébergé sur Github. Par défaut, il est fusionné dans la master
branche.
Y a-t-il un moyen pour moi de changer la branche dans laquelle les modifications seraient fusionnées?
la source
Une pull request arrive dans mon dépôt hébergé sur Github. Par défaut, il est fusionné dans la master
branche.
Y a-t-il un moyen pour moi de changer la branche dans laquelle les modifications seraient fusionnées?
Depuis le 15.08.2016, GitHub permet de changer la branche cible d'une pull request via l'interface graphique. Cliquez sur à Edit
côté du titre, puis sélectionnez la branche dans la liste déroulante.
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 branche différente. En changeant la branche de base de votre pull request d'origine plutôt qu'en en ouvrant une nouvelle avec la branche de base correcte, vous pourrez conserver un travail et des discussions précieux.
L'émetteur peut changer cela lorsqu'il émet la demande d'extraction, mais une fois qu'il l'a émise, vous ne pouvez pas le changer.
D'un autre côté, vous pouvez fusionner manuellement leur branche et pousser, ce que je fais semi-régulièrement pour les demandes d'extraction mal ciblées.
Vous pouvez trouver la
hub
gemme utile pour travailler avec les composants de la demande d'extraction.Ce joyau termine le processus manuel, qui est:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
la source
git merge --no-ff ...
comme @GuillermoMansilla mentionne dans sa réponse.Une alternative à l'utilisation du gem hub mentionné par d'autres réponses consiste à utiliser la ligne de commande pour fusionner localement les pull requests , ce qui vous permet de faire:
Les commandes ci-dessus ne fonctionnent directement que si vous ajoutez d'abord la ligne suivante à votre
.git/config
fichier:Cela vous permet de télécharger TOUTES les demandes d'extraction. Étant donné que cela n'est peut-être pas souhaité pour les dépôts volumineux, GitHub a modifié les instructions pour inclure la
git fetch origin pull/ID/head:BRANCHNAME
syntaxe, ce qui évite la modification du fichier de configuration et ne télécharge que cette seule demande d'extraction.la source
Bien que vous ne puissiez pas modifier la pull request existante car elle n'est pas la vôtre, vous pouvez facilement en créer une nouvelle si le référentiel source associé existe toujours - oui, même s'il appartient à quelqu'un d'autre.
Accédez au référentiel de l'émetteur puis créez une nouvelle pull request dans son référentiel en utilisant les mêmes validations mais assurez-vous de définir correctement la bonne branche cible.
Revenez ensuite à votre propre référentiel et acceptez la nouvelle demande d'extraction. Voila!
la source
Il n'y a rien de mal avec la solution de Daniel Pittman, mais je traiterais ces fusions comme "pas d'avance rapide", c'est-à-dire en changeant l'étape 3 pour:
En utilisant
--no-ff
, l'historique sera plus facile à lire. Cela indiquera clairement que les$n
commits proviennent de$branch
, et cela vous facilitera également la vie si vous devez annuler quelque chose qui a été fait dans cette branche.Pour répondre également à la question d'eoinoc et donner un conseil supplémentaire:
Après avoir effectué la fusion, votre git cli vous invitera à écrire un message, généralement un message générique apparaîtra disant quelque chose comme
Assurez-vous de modifier ce message et d'inclure une référence au numéro de demande d'extraction. Autrement dit: (en supposant que le numéro de demande d'extraction est 123)
Ainsi, la prochaine fois que vous visiterez votre page de problèmes / demandes d'extraction github et que vous vérifierez cette demande d'extraction particulière, vous verrez votre message avec un lien pour valider l'endroit où vous avez effectué la fusion.
Voici une capture d'écran de ce que je veux dire.
la source
Pour ce faire, allez sur la page d'accueil de votre référentiel, cliquez sur les branches, et changez la branche par défaut de master en autre chose, dans mon cas "dev".
Après cela, chaque fois que quelqu'un crée une pull request, le
merge
bouton fusionnera automatiquement la requête dans "dev" plutôt que master.la source