504 votes

Tirez les demandes d'autres fourches dans ma fourche

Un projet sur GitHub dont j'ai une fourchette a de nouvelles demandes d'extraction que je veux tirer dans ma fourche que l'auteur n'a pas encore tirées.

Y at-il un moyen simple d'appliquer la demande de traction d'autres fourches dans ma fourche? Y a-t-il autre chose ici qui me manque?

292voto

CharlesB Points 27070

Vous pouvez le faire manuellement très facilement:

  • ajouter les autres fourche à distance de votre repo:

    git remote add otherfork git://github.com/request-author/project.git
    
  • chercher son repo s engage

    git fetch otherfork
    
  • Vous avez alors deux options pour appliquer des pull request (si vous ne voulez pas choisir de sélection 1.)

    1. Si vous n'avez pas de soins sur l'application de la également de l'éventuelle commits qui ont été ajoutés entre l'origine et de la demande d'extraction, vous pouvez simplement rebase la branche sur laquelle la demande d'extraction a été formé

      git rebase master otherfork/pullrequest-branch
      
    2. Si vous voulez seulement le s'engage dans la demande d'extraction, d'identifier leurs SHA1 et ne

      git cherry-pick <first-SHA1> <second-SHA1> <etc.>
      

80voto

SciPhi Points 830

Comme Tekkub dit précédemment, vous pouvez juste tirer la branche directement. La plupart du temps avec GitHub, la direction est tout simplement « maître » de la fourche de l’utilisateur demandeur du projet.

Exemple :``

28voto

jbyler Points 721

Tirez les demandes pour le projet peut venir de beaucoup de différents auteurs (fourches), et vous ne voulez probablement pas une télécommande supplémentaire pour chaque branche. En outre, vous ne voulez pas faire des hypothèses sur la branche de l'auteur a utilisé lors du dépôt de la demande d'extraction, ou quoi d'autre pourrait être l'auteur de la branche master. Il est donc préférable de référence de la demande d'extraction tel qu'il apparaît en amont, dans le référentiel, plutôt que tel qu'il apparaît dans les autres branches.

Étape 1:

git remote add upstream <url>

Vous avez probablement déjà fait cette étape, mais si pas, vous aurez envie d'une distance définie pour le projet en amont. L'URL est le clone de l'URL du projet vous fourchue. Plus d'info sur la Configuration d'une télécommande pour une fourchette et la Synchronisation d'une fourchette. upstream est le nom que vous donnez à la télécommande, et bien qu'il peut être n'importe quoi, upstream est le nom conventionnel.

Étape 2:

git pull upstream refs/pull/{id}/head

... où est - {id} est l'attraction numéro de demande. upstream est le nom de la télécommande pour tirer à partir d', c'est à dire juste "en amont" si vous avez suivi l'étape 1 exactement. Il peut également être une URL, dans ce cas, vous pouvez ignorer l'étape 1.

Étape 3:

Tapez un message de commit pour la fusion s'engager. Vous pouvez conserver la valeur par défaut, bien que je recommande de donner un beau résumé d'une ligne, en tirant sur le numéro de la demande, le problème qu'elle résout, et une courte description:

Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions

22voto

Brian Litzinger Points 243

Certains plus détaillée d’informations qui a fonctionné pour moi.

Mon fichier .git/config pour le repo Fourchu ressemble à ceci :

Puis exécutez « source git fetch », qui énumère ensuite toutes les demandes de tirer depuis le repo Fourchu.

Et puis pour fusionner dans une demande de traction spécifique exécutée « git merge maître origine/pr/67 »

9voto

MindTooth Points 1287

Ce que je ferais est la suivante ;

J’ai fusionné les modifications dans une branche de test, nommée `` . Afin qu’aucune modification ne sera pas salir mon arbre.

Éventuellement vous pouvez utiliser choisir comme décrit ci-dessus pour choisir une validation particulière si ce n’est plus préférable.

Happy voyages  :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X