web-dev-qa-db-fra.com

Comment mettre à jour un fork GitHub Repo dans l'interface Web?

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?

57
Jake Wilson

Vous pouvez essayer d'inverser la manière dont les demandes d'extraction se produisent.

  1. Va à ta fourchette
  2. É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.

  3. 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:

    fork done over itself

  4. 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.

42

Ça va être plus facile.

  1. Allez au Forked Repo (le vôtre) et cliquez simplement sur le bouton - "Nouvelle demande de tir".
  2. Sur la page qui s'ouvre, il y a un petit lien vers "base de changement" dans le message sous la liste déroulante. Cliquer sur le lien.
  3. Maintenant, cela mènera automatiquement à votre dépôt initial. Cliquez sur le bouton Créer une demande d'extraction et écrivez un message de validation.
  4. Maintenant, cela mènera automatiquement à votre repo forké, cliquez sur demande de fusion et confirmer la fusion pour terminer.
21
Youngjae

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

Synchroniser une fourche


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.

3
ode2k