web-dev-qa-db-fra.com

Comment mettre à jour une demande de pull à partir d'un repo forké?

J'ai donc d'abord créé un référentiel, puis un engagement envers ce référentiel. J'ai alors ouvert une demande de tirage. La demande d'extraction énumère tous les changements que je voulais.

Après avoir examiné ma demande de tirage, le propriétaire du repo voulait que je fasse certaines modifications avant de l'accepter. J'ai apporté ces modifications dans ma fourchette. Comment puis-je mettre à jour la demande d'extraction avec ces modifications (ou n'est-ce pas la façon dont je devrais y faire face)?

559
stevebot

Vous l'avez bien fait. La demande d'extraction sera automatiquement mise à jour. Le processus est:

  1. Demande de traction ouverte
  2. Valider les modifications en fonction des commentaires de votre référentiel local
  3. Appuyez sur la branche appropriée de votre fourche

La demande d'extraction ajoutera automatiquement les nouveaux commits au bas de la discussion sur la demande d'extraction (c'est-à-dire c'est déjà fait, faites défiler vers le bas!)

545
shelhamer

Mettre à jour une demande d'extraction dans GitHub est aussi simple que de valider les modifications souhaitées dans une branche existante (utilisée avec la demande d'extraction), mais il est également souvent souhaitable de réduire les modifications à une seule validation:

git checkout yourbranch
git rebase -i Origin/master

# Edit command names accordingly
  pick   1fc6c95 My pull request
  squash 6b2481b Hack hack - will be discarded
  squash dd1475d Also discarded

git Push -f Origin yourbranch

... et maintenant la demande d'extraction ne contient qu'un seul commit.


Liens connexes sur le changement de base:

74
jmu

Il suffit d'appuyer sur la branche référencée par la demande d'extraction. Tant que la demande d'extraction est toujours ouverte, elle devrait être mise à jour automatiquement avec les commits ajoutés.

32
igorw

Je l'ai fait en utilisant les étapes ci-dessous:

  1. git reset --hard <commit key of the pull request>
  2. Est-ce que mes changements de code que je voulais faire
  3. git add
  4. git commit --amend
  5. git Push -f Origin <name of the remote branch of pull request>
10
VicJordan

Si vous utilisez GitHub sur Windows:

  1. Apportez des modifications localement.
  2. Ouvrez GitHub, basculez vers les référentiels locaux, double-cliquez sur le référentiel.
  3. Basculez la branche (près du haut de la fenêtre) sur la branche à partir de laquelle vous avez créé la demande d'extraction (c'est-à-dire la branche située du côté fourche de la comparaison).
  4. Devrait voir l’option permettant de saisir le commentaire de validation à droite et de valider les modifications apportées à votre rapport local.
  5. Cliquez sur la synchronisation en haut, ce qui pousse, entre autres choses, votre commit de local à votre fork distant sur GitHub.
  6. La demande d'extraction sera mise à jour automatiquement avec les validations supplémentaires. En effet, la requête extraite représente un diff avec la branche de votre fork. Si vous accédez à la page de demande d'extraction (celle sur laquelle vous et les autres utilisateurs pouvez commenter votre demande d'extraction), l'onglet Commit devrait contenir votre ou vos validations supplémentaires.

C'est pourquoi, avant de commencer à apporter vos propres modifications, vous devez créer une branche pour chaque ensemble de modifications que vous prévoyez d'appliquer à une demande d'extraction. Ainsi, une fois que vous avez effectué la demande d'extraction, vous pouvez créer une autre branche et continuer à travailler sur une autre tâche/fonctionnalité/correction de bug sans affecter la demande d'extraction précédente.

3
AaronLS