web-dev-qa-db-fra.com

Comment faire une demande de tirage GitHub

Comment créer et/ou envoyer une demande d'extraction à un autre référentiel hébergé sur GitHub?

277
tim peterson

Pour savoir comment faire une demande d'extraction, je viens de suivre deux pages d'aide distinctes sur Github (liées ci-dessous sous forme de points). Les commandes de ligne de commande suivantes s’appliquent à Part 1 . La partie 2 , la demande d'extraction réelle, est entièrement réalisé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 : insérez le repo de quelqu'un: https://help.github.com/articles/fork-a-repo

    1. cliquez sur le bouton "fork" du référentiel auquel vous souhaitez contribuer, dans ce cas: repo de Dwolla PHP (Dwolla/dwolla-php)
    2. récupérez l'URL de votre nouveau fork, dans ce cas: https://github.com/tim-peterson/dwolla-php.git (tim-peterson/dwolla-php)
    3. tapez la séquence git clone->cd dwolla-php->git remote->git fetch ci-dessus pour cloner votre fork quelque part dans votre ordinateur (c.-à-d. "copier/coller" dans le cas suivant: third_party TimPeterson$) et le synchroniser avec le dépôt principal (Dwolla/dwolla- php)
    4. apportez vos modifications à votre référentiel local
    5. tapez la séquence git add->git commit->git Push ci-dessus pour appliquer vos modifications au référentiel distant, c’est-à-dire votre fork sur Github (tim-peterson/dwolla-php)
  • Partie 2 : faire une demande de tir: https://help.github.com/articles/using-pull-requests

    1. allez sur la page Web de votre fork sur Github ( https://github.com/tim-peterson/dwolla-php )
    2. cliquez sur le bouton 'demande de traction'
    3. donnez un nom à la demande, indiquez les modifications apportées, cliquez sur le bouton Envoyer.
    4. vous avez terminé!!
198
tim peterson

(En plus de la page officielle " Aide de GitHub 'Utiliser la requête d'extraction' ",
voir aussi " Forking vs. Branching dans GitHub ", " Quelle est la différence entre Origin et amont dans GitHub ")

Quelques conseils sur les demandes de tirage:

En supposant que vous ayez d’abord ne réplique fourchue, voici ce que vous devriez faire dans cette fourchette que vous possédez:

  • créer une branche : isolez vos modifications dans une branche. Ne créez pas de requête d'extraction à partir de master, où vous pourriez être tenté d'accumuler et de mélanger plusieurs modifications à la fois.
  • rebasonner cette branche : même si vous avez déjà fait une demande d'extraction depuis cette branche, la rebasper au-dessus de _Origin/master_ (en vous assurant que votre correctif est fonctionne toujours) mettra à jour la demande d'extraction automatiquement (pas besoin de cliquer sur quoi que ce soit)
  • met à jour cette branche : si votre demande d'extraction est rejetée, vous pouvez simplement ajouter de nouvelles commissions et/ou refaire complètement votre historique: cela activera votre extraction existante. demander à nouveau.
  • "concentre" cette branche : c'est-à-dire que son sujet est "serré", ne modifiez pas des milliers de classes et que toutes les applications, ajoutez ou corrigez uniquement une fonctionnalité bien définie, en gardant les modifications réduites .
  • supprimer cette branche : une fois acceptée, vous pouvez supprimer cette branche en toute sécurité sur votre branche (et git remote Prune Origin ). L’interface graphique GitHub vous proposera de supprimer votre branche dans votre page de demande de retrait.

Remarque: pour écrire la demande d'extraction elle-même, voir " ) Comment écrire la demande d'extraction parfaite "(janvier 2015, GitHub)


Mars 2016: nouvelle option du bouton de fusion des relations publiques: voir " la commande Github squash est validée à partir de l'interface Web sur la demande d'extraction après avoir passé en revue les commentaires? ".

squash

Le responsable du référentiel peut choisir de _merge --squash_ ces commits PR.


Après une demande de tirage

En ce qui concerne le dernier point, depuis le 10 avril 2013, "bouton de fusion repensé", la branche est supprimée pour vous:

new merge button

La suppression de branches après la fusion a également été simplifiée.
Au lieu de confirmer la suppression par une étape supplémentaire, nous supprimons immédiatement la branche lorsque vous la supprimez et fournissons un lien pratique pour restaurer la branche si vous en avez besoin à nouveau .

Cela confirme la meilleure pratique consistant à supprimer la branche après la fusion d'une demande d'extraction.


pull-request vs request-pull


notes électroniques pour "repositionnement" (sic)

_<humour>_

Cela (demande de tirage) n'est même pas défini correctement par GitHub!

Heureusement, un véritable organisme de presse économique le saurait, et il existe un e-note pour remplacer pull-replace par 'e-note' :

https://pbs.twimg.com/media/BT_5S-TCcAA-EF2.jpg:large

Donc, si votre dépôt o tory a besoin d'un e-note ... demandez à Fox Business = . Ils sont au courant.

_</humour>_

233
VonC

Pour faire une demande d'extraction, vous devez suivre les étapes suivantes:

  1. Définissez un référentiel (auquel vous souhaitez envoyer une demande d'extraction). Cliquez simplement sur le bouton fork de la page du référentiel et vous aurez un référentiel séparé de github précédé de votre nom d'utilisateur github.
  2. Clonez le référentiel sur votre machine locale. Le logiciel Github que vous avez installé sur votre ordinateur local peut le faire pour vous. Cliquez sur le bouton de clonage à côté du nom du référentiel.
  3. Faire des changements locaux/commets dans les fichiers
  4. synchroniser les modifications
  5. allez dans votre dépôt github forked et cliquez sur le bouton vert "Compare & Review" situé à côté du bouton de branche. (Le bouton a une icône - pas de texte)
  6. Une nouvelle page s'ouvrira indiquant vos modifications, puis cliquez sur le lien de demande d'extraction, qui enverra la demande au propriétaire d'origine du référentiel que vous avez créé.

Il m'a fallu un certain temps pour comprendre cela, espérons que cela aidera quelqu'un.

68
Farhan

J'ai lancé un projet pour aider les gens à faire leur première demande de tirage GitHub. Vous pouvez faire le tutoriel pratique pour faites votre premier PR ici

Le flux de travail est simple comme

  • Fork le repo dans github
  • Obtenir l'URL de clonage en cliquant sur le bouton de repositionnement
  • Allez au terminal et lancez git clone <clone url you copied earlier>
  • Créez une branche pour les modifications que vous apportez git checkout -b branch-name
  • Faire les changements nécessaires
  • Validez vos modifications git commit
  • Transférez vos modifications dans votre fork sur GitHub git Push Origin branch-name
  • Allez sur votre fork sur GitHub pour voir un bouton Compare and pull request
  • Cliquez dessus et donnez les détails nécessaires
13
sudo bangbang

Pour ceux d'entre nous qui ont un compte github.com, mais qui reçoivent un message d'erreur désagréable lorsque nous tapons "git" dans la ligne de commande, voici comment procéder dans votre navigateur :)

  1. Identique à ce que Tim et Farhan ont écrit: Créez votre propre copie du projet: Step 1: Fork
  2. Après quelques secondes, vous serez redirigé vers votre propre copie forkée du projet: Step 2
  3. Accédez au (x) fichier (s) que vous devez modifier et cliquez sur "Modifier ce fichier" dans la barre d’outils: Step 3: Edit a file
  4. Après l'édition, écrivez quelques mots décrivant les modifications, puis "Valider les modifications", ainsi que dans la branche principale (puisqu'il ne s'agit que de votre propre copie et non du projet "principal"). Step 4: Commit changes
  5. Répétez les étapes 3 et 4 pour tous les fichiers que vous devez modifier, puis revenez à la racine de votre copie du projet. Là, cliquez sur le bouton vert "Comparer, réviser ...": Step 5: Start submit
  6. Enfin, cliquez sur "Créer une demande d'extraction" ..et ensuite sur "Créer une demande d'extraction" après avoir revérifié le titre et la description de votre demande: - enter image description here
12
Sphinxxx

J'ai suivi les instructions de Tim Peterson mais j'ai créé une branche locale pour mes modifications. Cependant, après avoir poussé, je ne voyais pas la nouvelle branche dans GitHub. La solution consistait à ajouter -u à ​​la commande Push:

git Push -u Origin <branch>
3
tamalet

J'ai écrit un programme bash qui fait tout le travail de mise en place d'une branche de relations publiques pour vous. Il effectue un bricolage si nécessaire, une synchronisation en amont, une configuration en amont à distance, etc.

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 exécuter manuellement le même processus si vous souhaitez comprendre son fonctionnement, ainsi que des informations supplémentaires sur la façon de le conserver. votre branche de fonctionnalité mise à jour avec le maître en amont et d’autres informations utiles.

1
stason