J'ai un dépôt Github que j'ai créé à partir d'un autre projet il y a plusieurs mois. Plusieurs mois plus tard, le référentiel principal a été modifié. Je voudrais mettre à jour mon rapport pour refléter ces changements. Est-ce possible dans l'interface Web Github? Ou dois-je simplement supprimer le dépôt et le re-créer?
Vous pouvez essayer d'inverser la manière dont les demandes d'extraction se produisent.
Émettre une demande de tirage
Par défaut, ce sera votre fork à droite (head repo) demandant à pousser ses commits et les modifications apportées au repo d'origine (repo de base) à gauche.
Cliquez sur le menu déroulant du référentiel de base et du référentiel principal, puis sélectionnez les référentiels respectifs.
Vous souhaitez que le vôtre soit répertorié à gauche (en acceptant les modifications), tandis que le référentiel d'origine se trouve à droite (celui contenant les modifications en mode Push). Comme illustré dans cette image:
Envoyer la demande de tirage
Si votre branche n'a pas subi de modifications, vous devriez pouvoir accepter automatiquement la fusion.
Si votre code entre en conflit ou n'est pas assez propre, la mise à jour via l'interface Web de GitHub ne fonctionnera pas. Vous devrez saisir le code et résoudre les conflits éventuels sur votre ordinateur avant de revenir à votre plate-forme.
Ça va être plus facile.
Comment mettre à jour un référentiel GitHub avec des modifications depuis le référentiel amont distant
Instructions de l'aide de GitHub:
Configuration d'une fourche distante
Instructions d'installation/d'utilisation:
Ouvrez Git Bash (Windows) ou un terminal Linux/Mac
Si vous n'avez pas encore cloné votre référentiel, vous devez accéder au répertoire de travail de votre dossier de développement et le cloner sur votre poste de travail.
$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git
Accédez au répertoire de travail de votre référentiel forké sur votre poste de travail.
$ cd /user/development/my_forked_repo/
Répertoriez le référentiel distant configuré actuel pour votre fork.
$ git remote -v
Origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
Origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (Push)
Spécifiez un nouveau référentiel en amont distant qui sera synchronisé avec le fork.
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
Vérifiez le nouveau référentiel en amont que vous avez spécifié pour votre branche.
$ git remote -v
Origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
Origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (Push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (Push)
Récupérez les branches et leurs commits respectifs dans le référentiel en amont. Les commits à maîtriser seront stockés dans une branche locale, en amont/maître.
$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
Vérifiez la branche principale locale de votre fourche.
$ git checkout master
Switched to branch 'master'
Fusionner les modifications de l'amont/maître dans votre branche maître locale. Cela permet de synchroniser la branche principale de votre fork avec le référentiel en amont, sans perdre vos modifications locales.
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
Si votre branche locale n'a pas de commits uniques, Git effectuera une "avance rapide":
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Vous devez maintenant pousser les commits vers votre fork.
$ git Push
Si vous n'êtes pas déjà authentifié, il vous demandera votre nom d'utilisateur/mot de passe github. Une fois authentifiés, les nouveaux commits doivent être placés sur votre fork et visibles sur github.