Comment créer et / ou envoyer une pull request à un autre référentiel hébergé sur GitHub?
Comment créer et / ou envoyer une pull request à un autre référentiel hébergé sur GitHub?
Réponses:
(En plus de la page officielle « Aide de GitHub« Utilisation des demandes de tirage » »,
voir également « Forking vs Branching dans GitHub », « Quelle est la différence entre l'origine et l'amont dans GitHub »)
En supposant que vous avez d'abord forké un repo , voici ce que vous devez faire dans ce fork que vous possédez:
master
laquelle vous pourriez être tenté d'accumuler et de mélanger plusieurs modifications à la fois.origin/master
(en vous assurant que votre patch fonctionne toujours), la mise à jour de la demande de pull sera automatisée (pas besoin de cliquer sur quoi que ce soit)git remote prune origin
). L'interface graphique GitHub vous proposera de supprimer votre branche dans votre page pull-request.Remarque: pour écrire la Pull-Request elle-même, voir " Comment écrire la parfaite pull request " (janvier 2015, GitHub)
Mars 2016: Nouvelle option de bouton de fusion PR: voir " Github squash valide depuis l'interface web sur demande de pull après avoir commenté les commentaires? ".
Le responsable du dépôt peut choisir merge --squash
ces engagements PR.
Concernant le dernier point, depuis le 10 avril 2013, " Bouton de fusion repensé ", la branche est supprimée pour vous:
La suppression des branches après la fusion a également été simplifiée.
Au lieu de confirmer la suppression avec une étape supplémentaire, nous supprimons immédiatement la branche lorsque vous la supprimez et fournissons un lien pratique pour restaurer la branche au cas où vous en auriez besoin à nouveau .
Cela confirme la meilleure pratique de suppression de la branche après la fusion d'une demande d'extraction.
pull request n'est pas un terme "git" officiel.
Git utilise la request-pull
commande (!) Pour créer une demande de fusion:
il "résume les modifications entre deux validations de la sortie standard et inclut l'URL donnée dans le résumé généré".
Github lance sa propre version depuis le premier jour (février 2008) , mais a repensé cette fonctionnalité en mai 2010 , déclarant que:
Pull Request = Compare View + Issues + Commit comments
<humour>
Ce (pull request) n'est même pas défini correctement par GitHub!
Heureusement, une véritable organisation de nouvelles commerciales le saurait, et il y a une e-note pour remplacer le pull-replace par 'e-note' :
Donc , si vos prises en pension o besoins tory un e-note ... demander Fox Business . Ils sont au courant.
</humour>
branch
vs. master
semble être critique pour faire passer ma réponse / Github d'une solution théorique à quelque chose que l'on utiliserait réellement.
git pull --rebase upstream/master
va bien.
Pour savoir comment faire une demande de pull, je viens de suivre deux pages d'aide distinctes sur Github (liées ci-dessous sous forme de puces). Les commandes de ligne de commande suivantes concernent la partie 1 . La partie 2 , la demande d'extraction réelle, est entièrement effectuée sur le site Web de Github.
$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
Partie 1 : Fork repo de quelqu'un: https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
séquence ci-dessus pour cloner votre fork quelque part dans votre ordinateur (c'est-à-dire, "copiez / collez" dessus, dans ce cas third_party TimPeterson$
:) et synchronisez-le avec le référentiel maître (Dwolla / dwolla-php)git add->git commit->git push
séquence ci-dessus pour pousser vos modifications vers le référentiel distant, c'est-à-dire votre fork sur Github (tim-peterson / dwolla-php)Partie 2 : faire une pull-request: https://help.github.com/articles/using-pull-requests
Tims-MacBook-Pro:third_party TimPeterson$
car il s'agit d'un tutoriel pour débutant et ces invites aident à orienter l'utilisateur.
git fetch upstream
, n'avez-vous pas besoin de fusionner les modifications en amont avec votre copie locale, en utilisant git checkout master
alors git merge upstream/master
?
Afin de faire une demande d'extraction, vous devez effectuer les étapes suivantes:
Il m'a fallu un certain temps pour comprendre cela, j'espère que cela aidera quelqu'un.
J'ai lancé un projet pour aider les gens à faire leur première demande d'extraction GitHub. Vous pouvez faire le tutoriel pratique pour faire votre premier PR ici
Le flux de travail est aussi simple que
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
boutonPour ceux d'entre nous qui ont un compte github.com, mais qui n'obtiennent un mauvais message d'erreur que lorsque nous tapons "git" dans la ligne de commande, voici comment faire tout cela dans votre navigateur :)
J'ai suivi les instructions de tim peterson mais j'ai créé une branche locale pour mes changements. Cependant, après avoir poussé, je ne voyais pas la nouvelle branche dans GitHub. La solution était d'ajouter -u à la commande push:
git push -u origin <branch>
tim-peterson
le 2e estDwolla
J'ai écrit un programme bash qui fait tout le travail de mise en place d'une branche PR pour vous. Il effectue le forking si nécessaire, la synchronisation avec l'amont, la configuration de la télécommande en amont, etc. et il vous suffit de valider vos modifications, de pousser et de soumettre un PR.
Voici comment vous l'exécutez:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
Vous trouverez le programme ici et son référentiel comprend également un guide étape par étape pour effectuer le même processus manuellement si vous souhaitez comprendre comment il fonctionne, ainsi que des informations supplémentaires sur la façon de maintenir votre branche de fonctionnalités à jour. rendez-vous avec le maître en amont et d'autres informations utiles.
La demande d'extraction GitHub la plus simple provient de l'interface Web sans utiliser git.
Cliquez sur l' icône en forme de crayon ,
recherchez du texte à proximité de l'emplacement, apportez les modifications souhaitées, puis prévisualisez-les pour confirmer. Donnez au changement proposé une description de 50 caractères maximum et éventuellement une description détaillée, puis cliquez sur le bouton Proposer un changement de fichier .
Si vous lisez ceci, vous n'aurez pas accès en écriture au référentiel (dossiers de projet), donc GitHub créera une copie du référentiel (en fait une branche) dans votre compte. Cliquez sur le bouton Créer une demande d'extraction .