Il est crucial de garder votre référentiel à fourche GitHub en synchronisation et de vous assurer que votre référentiel fourchu est cohérent avec les derniers modifications du référentiel d'origine. Cela peut être fait en tirant des modifications du référentiel d'origine au référentiel local et en le poussant vers le référentiel fourchu.
Le processus de mise à jour d'un référentiel fourchu comprend: la fourniture du référentiel, le clonage du référentiel fourchu, le lien vers le référentiel d'origine, la tir des modifications du référentiel d'origine et la poussée des modifications au référentiel fourchu. Ce processus suppose que vous avez fourré le référentiel et cloné le référentiel fourchu sur votre machine locale.
Lorsque vous traitez avec des référentiels fourchus, il est préférable d'éviter de commettre des modifications directement dans la branche principale du référentiel fourchu ou du référentiel local. Cette branche doit être utilisée pour enregistrer le code de mise à jour du référentiel d'origine uniquement. Toutes les modifications doivent être apportées dans une nouvelle fonctionnalité ou une nouvelle branche d'erreur et poussée vers une branche avec le même nom sur le référentiel fourchu.
Pour comprendre le concept de mise à jour d'un référentiel fourchu, vous devez d'abord comprendre pourquoi cela est nécessaire.
Les organisations ne peuvent pas accorder des autorisations d'écriture à leur référentiel principal à chaque contributeur potentiel, afin que le public ne puisse afficher le référentiel d'origine. Une fourche est une copie du référentiel d'origine qu'un utilisateur peut créer. L'utilisateur a lu et rédigé des autorisations pour ses propres fourches.
Habituellement, la programmation se fait sur une machine locale (ou machine virtuelle) plutôt que directement sur l'interface GitHub, de sorte qu'un clone du référentiel fourchu est généralement créé.
Une fois que le contributeur soumet un changement à la réplique locale, il doit être poussé vers un référentiel fourchu sur github (cela est possible en raison des autorisations d'écriture). Ensuite, créez une demande de traction du référentiel fourchu vers le référentiel d'origine.
Lorsque le référentiel d'origine est mis à jour avec le code de quelqu'un d'autre (après la création de la fourche), ces nouveaux engins n'apparaîtront pas automatiquement dans le référentiel de fourche. Ces modifications doivent d'abord être téléchargées et fusionnées dans le référentiel local, puis poussés vers le référentiel fourchu.
Pour des raisons historiques, dans notre référentiel local, nous avons nommé le référentiel distant du référentiel d'origine upstream
et du référentiel fourchu origin
.
Idéalement, vous ne devez jamais faire de validation directement dans la branche principale d'un référentiel fourchu ou d'un référentiel local. Cette branche doit être utilisée uniquement pour enregistrer le code de mise à jour de upstream
. Toutes les modifications doivent être apportées dans une nouvelle fonctionnalité ou une nouvelle branche d'erreur et poussée vers une branche avec le même nom sur le référentiel fourchu.
Par conséquent, les étapes suivantes aident à mettre à jour le référentiel de forking avec le dernier engagement du référentiel d'origine:
upstream
Ces étapes supposent que vous avez fourré le référentiel et cloné le référentiel fourchu sur votre machine locale.
Pour la démonstration, nous utiliserons le référentiel d'e-Cidadania sur GitHub.
Pour fourrer le référentiel, vous devez cliquer sur le bouton de la fourche (le coin supérieur droit de la capture d'écran).
Pour cloner votre référentiel fourchu, vous devez d'abord sélectionner le protocole dans le menu déroulant (comme indiqué dans la capture d'écran ci-dessous) et copier le lien. Dans cette démonstration, nous sélectionnerons le protocole SSH:
Ouvrez le terminal et exécutez la commande suivante:
git clone git@github.com:sdaityari/e-cidadania.git
Vous devez ensuite relier votre référentiel local au référentiel d'origine pour pouvoir extraire des modifications du référentiel d'origine. Cela se fait en ajoutant un référentiel distant upstream
. Tout d'abord, copiez le lien SSH du référentiel d'origine et ajoutez le référentiel distant en exécutant la commande suivante:
git remote add upstream git@github.com:cidadania/e-cidadania.git
Pour vérifier que le référentiel distant a été ajouté, vérifiez la liste du référentiel distant en exécutant la commande suivante:
git remote -v
La sortie doit ressembler à ceci:
<code>origin git@github.com:sdaityari/e-cidadania.git (fetch) origin git@github.com:sdaityari/e-cidadania.git (push) upstream git@github.com:cidadania/e-cidadania.git (fetch) upstream git@github.com:cidadania/e-cidadania.git (push)</code>
upstream
(référentiel d'origine) Lorsqu'il y a de nouveaux engins dans la branche principale du référentiel d'origine et qu'il n'y a pas de validations dans votre référentiel de fourche, vous recevrez un message GitHub sur la page du référentiel de fourche. Dans la capture d'écran, vous pouvez voir un message qui dit "Cette branche est à la traîne de Cidadania: Master 36 Commits":
Pour extraire ces modifications dans votre référentiel local, exécutez la commande suivante:
git pull upstream master
Cette commande mettra à jour votre branche maître à partir du référentiel distant upstream
.
origin
(référentiel fourchu) pour pousser ces mises à jour du référentiel d'origine au référentiel fourchu, il suffit d'exécuter la commande suivante:
git push origin master
Pour confirmer que les modifications ont été mises à jour, visitez à nouveau la page du référentiel fourchu sur GitHub!
Message "Cette branche est cohérente avec Cidadania: Master" indique que la branche principale qui a été ajoutée au référentiel fourchu est modifiée.
(La partie FAQ est omise ici car elle est trop longue et ne correspond pas à l'objectif pseudo-original. La partie FAQ peut être réorganisée et réécrite au besoin, mais les informations doivent être garanties que les informations sont terminées et l'original L'intention n'est pas modifiée.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!