Comment appliquer non fusionné en amont tirer des demandes provenant d'autres fourchettes dans ma fourchette?
Un projet sur GitHub que j'ai une fourche de a un nouveaux pull demandes que j'ai envie de tirer dans ma fourchette que l'auteur n'a pas tiré encore.
Est-il un moyen simple d'appliquer pull request à partir d'autres fourchettes dans ma fourchette? Est-il autre chose ici que je suis absent?
- Il y a une instruction: gist.github.com/piscisaureus/3342247
- Est-ce à réfléchir sur le réseau graphique sur GitHub si vous utilisez des commandes git pour le faire?
- Peut également être intéressant de trouver toutes les branches trop: stackoverflow.com/q/47798937/10245
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire manuellement très facilement:
ajouter les autres fourche à distance de votre repo:
chercher son repo s engage
Vous avez alors deux options pour appliquer des pull request (si vous ne voulez pas choisir de sélection 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é
Si vous voulez seulement le s'engage dans la demande d'extraction, d'identifier leurs SHA1 et ne
git pull URL branchname
git merge
.merge
fait!Mise À Jour: Via La Page Web De
Vous pouvez également le faire via la page github.
Je suppose, vous devriez déjà avoir une fourchette (
MyFork
) de la commune de repo (BaseRepo
) qui a l'attente de la demande d'extraction à partir d'une fourchette (OtherFork
) qui vous intéresse.OtherFork
) qui a initié la demande de pull que vous souhaitez obtenir dans votre fourchette (MyFork
)OtherFork
OtherFork
la direction de l'. Sélectionnez sur le côté gauche, comme la base de la fourche de votre fourche (MyFork
) (IMPORTANT).View pull request
devrait changer pourCreate pull request
. Cliquez sur ce.Maintenant, vous avez une attente de la demande d'extraction dans votre fourchette (
MyFork
), que vous pouvez simplement accepter.OtherFork
, de la main droite 'comparer' déroulante. Puis, j'ai sélectionné le côté gauche, comme la base de la fourche comme décrit ci-dessus comme a réussi à créer le pull request.Comme Tekkub dit précédemment, vous pouvez simplement tirer la branche directement. La plupart du temps avec GitHub, la succursale est tout simplement "maître" sur la demande de l'Utilisateur de la fourche du projet.
Exemple:
git pull https://github.com/USER/PROJECT/BRANCH
git pull https://github.com/{upstream/project} refs/pull/{id}/head
à la place.Quelques infos plus détaillées qui a fonctionné pour moi.
Mon .git/config fichier de la fourche repo ressemble à ceci:
Puis "git fetch source", qui a ensuite énuméré tous les pull requests de la fourche repo.
Et puis de les fusionner dans une pull request run "git merge master origine/pr/67"
refs/pull/
espace de noms.smartgit.branch.otherRefs=notes;pull
à smartgit.propriétés comme par syntevo.com/doc/display/SG/System+Propriétés - vous pouvez aussi fusionner à partir de là.Tirer 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 fourches.
Étape 1:
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 à Configuration de la 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:
... où
{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:
Type dans 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:
git pull upstream refs/pull/{id}/head
pour obtenir les validations dans votre local repo, puis de référence commeFETCH_HEAD
(par exemplegit log ..FETCH_HEAD
pour voir ce qu'il contient, puisgit merge FETCH_HEAD
)Ce que je voudrais faire est la suivante;
J'ai fusionné les modifications dans un test de branche, nommé
test_fork
. De sorte que les changements ne sera pas sale de mon arbre.Optionnellement, vous pouvez utiliser cherry-pick comme décrit ci-dessus pour en choisir un en particulier s'engager si c'est plus préférable.
Bon voyage 🙂
- Je utiliser un handy dandy de script pour cette. Je lance le script en tapant:
et il obtient tous les pull requests de l'amont de la fourche.
Pour créer le script d'en faire un fichier
~/bin/git-prfetch
.Le fichier doit contenir les éléments suivants:
De s'assurer que votre chemin d'accès inclut le script en paramètre:
Vous pouvez ajouter ce fichier à
~/.bashrc
pour rendre la modification permanente.Maintenant, assurez-vous d'ajouter la fourche vous voulez obtenir les pull requests à partir de:
Et puis