108 votes

Ma demande de tirage a été fusionnée, que faire ensuite?

J'ai récemment participé à un projet à partir de GitHub. J'ai fait la suivante:

Forké le dépôt original, cloné à mon local de la machine, faite d'une branche de correctif de bogue existant, correction d'un bug d'être dans cette branche, a poussé cette branche à mon repo, envoyer une demande d'extraction de l'auteur du dépôt de fusionner mon fix direction de sa branche master.

C'était ma première fois que j'ai commis sur un autre code, donc je ne sais pas quoi faire. Maintenant, mon pull request a été fusionné à l'origine repo/projet par l'auteur.

Que dois-je faire ensuite? Dois-je supprimer la branche? Devrais-je fusionner la branche? Quelque chose d'autre?


Infos supplémentaires:

Le projet d'origine a une seule branche.

J'ai aussi un en amont réglé pour obtenir les dernières mises à jour du formulaire de l'origine des pensions. (Je l'ai fait comme ça):

git remote add upstream https://path/to/original/repo.git

Et je reçois des mises à jour comme ceci:

git fetch upstream

62voto

VonC Points 414372

Quoi faire est d'aller sur la contribution de nouvelles fonctionnalités ou de la fixation d'autres bugs dans leurs propres filiales dédiées (poussé seul à la fourche).

Il est plus facile de:

  • supprimer votre fix de la branche (en fait, il est maintenant supprimé pour vous)
  • git pull upstream master (si master a été la branche dans laquelle votre correctif a été intégré: la fusion sera une avance rapide): pas de rebase nécessaires à ce stade.
  • recréer un correctif branche sur le dessus de votre mise à jour locale master (maintenant avec la dernière de upstream master).

Cependant, n'oubliez jamais une étape avant de soumettre toute future demande d'extraction:

rebase d'abord votre branche courante (fix) à partir de l'amont de la destination de la branche

(upstream originale repo vous avez fourche: voir "Quelle est la différence entre l'origine et en amont de github")

Avant de soumettre quoi que ce soit de l'original de pensions de titres ("en amont"), vous devez vous assurer que votre travail est basé sur le sommet de la plus récente à partir de ladite original repo (ou le pull-request ne se traduira pas par une avance rapide de fusion une fois appliqués sur upstream repo).
Voir, par exemple, "Workflow pour la gestion des pull requests sur le partage de repos dans github".

En d'autres termes, upstream peut évoluer (ont les nouveaux commits poussé sur elle) alors que vous êtes occupé des choses de fixation. Vous avez besoin de relire vos corrections sur le dessus de que les travaux les plus récents de l'amont vers assurez-vous que vos commits sont toujours compatible avec la dernière de l' upstream.


L' OP Santosh Kumar demande dans les commentaires:

J'ai tiré et fusionnées à partir de upstream de maître, maintenant ce qui?

Si vous n'avez pas à faire de tous les nouveaux correctifs depuis votre récente demande d'extraction, voir ci-dessus (supprimer et recréer une nouvelle branche fix sur le haut de votre jour master)

Si vous avez fait plus de travail depuis votre pull request, je n'aurais pas de fusion à partir d' upstream , si je veux faire une nouvelle demande d'extraction: je tirais et rebase:

git pull --rebase upstream master

De cette façon, tous mes nouveaux locaux de travail est rejoué sur le dessus de la plus récente upstream master s'engage (récupéré dans mon local repo), en supposant que l' master est la branche cible qui permettra d'intégrer mon avenir pull request.

Ensuite, je peux pousser mon travail local à 'origin", ce qui est mon fork sur GitHub d' upstream.
Et de mon fork sur GitHub, je peux faire une pull request, sachant qu'il ne fera qu'ajouter les nouveaux commits upstream sans avoir besoin d'une résolution de fusion: la fusion de ces nouveaux commits en upstream repo va se traduire par une simple avance rapide de fusion.


Un git pull --rebase , sans préciser la branche sur laquelle vous souhaitez rebase votre (extrait) fix de la branche ne fonctionne pas:

Qu' (git pull --rebase) dit:

You asked to pull from the remote '`upstream`', but did not specify a branch. 

Dois-je ajouter le maître à la fin? Et que cela fera?, il va supprimer mon fix de la branche?

Oui, vous pouvez spécifier la direction générale qui sera la cible de la demande d'extraction, par exemple 'master'.
Qui ne seront pas supprimer votre fix de la branche, mais de les relire sur le dessus de l'amont master récupérés dans votre pension.

17voto

Philipp Points 22441

Tout d’abord, félicitations pour votre première contribution à un projet sur Github.

Le flux de travail Github habituel consiste à créer une nouvelle branche pour chaque problème que vous résolvez. De cette manière, le responsable du référentiel principal peut choisir la solution à fusionner et celle à rejeter. Une fois qu'une branche a été fusionnée en amont, elle ne sera plus nécessaire et peut généralement être supprimée.

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