138 votes

github : Ajout de commits à une pull request existante

J'ai ouvert une pull request à rails sur github en utilisant Créer et éditer ce fichier bouton de fichier.

Aujourd'hui, Après avoir reçu un retour sur mon PR, j'ai voulu ajouter quelques commits supplémentaires. voici donc ce que j'ai fait en fin de compte

$ git clone git@github.com:gaurish/rails.git #my forked repo
$ git rebase -i 785a2e5 #commit hash of my commit using which PR was opened
$ git checkout patch-3 #branch name I had to send my commits under to be shown in that PR
$ git commit -am "Changes done as per feedback"
$ git push origin patch-3

Cela a bien fonctionné, mais cela semble être un processus assez complexe. Peut-être me suis-je trompé sur un point ?

ma question est la suivante : Est-ce que je procède de la bonne manière ? Si ce n'est pas le cas, quelle est la bonne manière de procéder ?

4 votes

Les personnes qui viennent ici trouveront peut-être que cela correspond mieux à leur scénario : stackoverflow.com/questions/9790448/

4 votes

J'ai également trouvé cette version de la question/réponse plus claire : stackoverflow.com/questions/7947322/

92voto

Abe Voelker Points 7306

Puisque vous utilisez les outils de GitHub et que vous ne modifiez qu'un seul fichier, vous pouvez également naviguer jusqu'au fichier sur GitHub, sélectionnez la branche appropriée dans le coin supérieur gauche sous le menu déroulant "tree :" ( patch-3 dans votre cas), puis choisissez "Editer ce fichier". Maintenant, vos changements seront livrés à cette branche et apparaîtront dans votre demande d'extraction.

0 votes

Notez que cela ne fonctionnera pas si la branche est protégé le bouton d'édition est grisé

74voto

Forrest Points 224

Oui, vous faites beaucoup plus de travail que nécessaire. Il suffit de faire un commit supplémentaire et de le forcer à être poussé. Vous verrez le commit original ainsi que le nouveau commit poussé lorsque vous actualiserez github dans votre navigateur.

$ git commit -m "These changes are in response to PR comments"
$ git push -f origin HEAD

12voto

J'ai récemment blogué sur ce sujet :

Comment maintenir à jour cette branche de fonctionnalités ? Fusionner les derniers commits amont est facile, mais vous voulez éviter de créer un commit de fusion, car il ne sera pas apprécié lorsqu'il sera poussé vers l'amont : vous êtes alors en train de re-commettre des changements amont, et ces commits amont recevront un nouveau hash (car ils auront un nouveau parent). Ceci est particulièrement important, car ces commits fusionnés seront reflétés dans votre demande d'extraction GitHub lorsque vous pousserez ces mises à jour vers votre branche de fonctionnalité GitHub personnelle (même si vous le faites après avoir émis la demande d'extraction).

C'est pourquoi nous devons rebaser au lieu de fusionner :

git co devel #devel is ansible's HEAD aka "master" branch
git pull --rebase upstream devel
git co user-non-unique
git rebase devel

L'option rebase et la commande rebase pour gi

N"" git pull --rebase ,''

T'

A

A

Update the origin repository’s remote branch with local branch, allowing non-fast-forward updates. This can leave unreferenced commits dangling in the origin repository.

S'

git push svg +user-non-unique

o

git push svg user-non-unique --force

T

A

7voto

cfedermann Points 2057

Vous pouvez également créer un nouveau pull request qui est lié à l' master au lieu d'un spécifique, abc1234 révision.

De cette façon, tout nouveau commit/push à votre dépôt sera ajouté à la demande d'extraction.

2voto

flyingfishcattle Points 110

J'ai pu ajouter des commits à une pull request existante en suivant ces étapes :

  1. Pousser les derniers commits vers votre branche de fonctionnalités
  2. Dans GitHub, allez dans la branche de la fonctionnalité et cliquez sur "New Pull Request".
  3. Vous devriez être en mesure de voir la demande d'extraction précédemment ouverte dans l'écran suivant. Cliquez maintenant sur 'View Pull Request' : enter image description here
  4. Vos derniers commits devraient être ajoutés à votre demande d'extraction existante maintenant. Laissez un commentaire si nécessaire

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