Ce qu'il faut faire ensuite est: continuer à apporter de nouvelles fonctionnalités ou à corriger d'autres bogues dans leurs propres branches dédiées (poussées uniquement à votre fourchette).
Cela signifie que votre fourche reste, mais les branches à l'intérieur de votre fourche peuvent aller et venir.
Vous pouvez également supprimer le fork si vous ne prévoyez pas de contribuer davantage, mais cela supprimera l'entrée correspondante dans les «Référentiels auxquels vous contribuez» .
Il est plus facile de:
- supprimez votre
fix
branche (en fait, elle est maintenant supprimée pour vous ) sur votre fork (et dans votre repo local cloné: voir " Supprimer une branche Git à la fois localement et à distance ")
git pull upstream master
(si master
était la branche dans laquelle votre correctif a été intégré: la fusion sera une avance rapide): aucun rebase n'est nécessaire à ce stade.
- recréez une branche de correctif au-dessus de votre locale mise à jour
master
(maintenant avec la dernière version de upstream master
).
Cependant, n'oubliez jamais une étape avant de soumettre toute future pull request:
rebase d'abord votre branche actuelle ( fix
) depuis la branche de destination en amont
( upstream
étant le dépôt d'origine que vous avez forké: voir " Quelle est la différence entre l'origine et l'amont dans github ")
Avant de renvoyer quoi que ce soit au référentiel d'origine ("en amont"), vous devez vous assurer que votre travail est basé sur le dernier en date dudit référentiel d'origine (sinon la demande d'extraction n'entraînera pas une fusion rapide une fois appliquée retour sur upstream
repo).
Voir, par exemple, " Workflow pour gérer les demandes d'extraction sur les dépôts partagés dans github ".
En d'autres termes, upstream
peut évoluer (avoir de nouveaux commits) pendant que vous êtes occupé à réparer des choses. Vous devez rejouer vos correctifs en plus de ce dernier travail en amont pour vous assurer que vos commits sont toujours compatibles avec le dernier des upstream
.
L' OP Santosh Kumar demande dans les commentaires :
J'ai tiré et fusionné de upstream
à maître, et maintenant?
Si vous n'avez pas apporté de nouveaux correctifs depuis votre récente pull request, voir ci-dessus (supprimez et recréez une nouvelle branche fix
en plus de votremaster
).
Si vous avez fait plus de travail depuis votre pull request, je ne fusionnerais pas upstream
si je voulais faire une nouvelle pull request: je tirerais et rebaserais :
git pull --rebase upstream master
De cette façon, tous mes nouveaux travaux locaux sont rejoués en plus des derniers upstream
master
commits (récupérés dans mon dépôt local), en supposant quemaster
c'est la branche cible qui intégrera ma future pull request.
Ensuite, je peux pousser mon travail local vers ' origin
', qui est mon fork sur GitHub de upstream
.
Et à partir de mon fork sur GitHub, je peux faire une pull request en toute sécurité, sachant que cela ne fera qu'ajouter de nouveaux commits àupstream
sans avoir besoin de résolution de fusion: la fusion de ces nouveaux commits dans le upstream
dépôt signifiera une simple fusion rapide.
UNE git pull --rebase
sans spécifier la branche au-dessus de laquelle vous souhaitez rebaser votre branche (actuellement extraite) fix
ne fonctionnerait pas:
Cela ( git pull --rebase
) dit:
You asked to pull from the remote '`upstream`', but did not specify a branch.
Dois-je enfin ajouter un master? Et qu'est-ce que cela va faire?fix
branche?
Oui, vous pouvez spécifier la branche qui sera la cible de la pull request, par exemple ' master
'.
Cela ne supprimera pas votre fix
branche, mais la rejouera en plus de la master
récupération en amont dans votre dépôt.
:)