web-dev-qa-db-fra.com

Extraire les nouvelles mises à jour du référentiel GitHub d'origine dans le référentiel GitHub créé

J'ai créé le référentiel de quelqu'un sur GitHub et souhaite mettre à jour ma version avec les validations et les mises à jour effectuées dans le référentiel d'origine. Celles-ci ont été faites après avoir fourré ma copie.

Comment puis-je intégrer les modifications apportées à l'Origin et les intégrer à mon référentiel?

570
why

Vous devez ajouter le référentiel d'origine (celui que vous avez créé) en tant que télécommande.

Depuis le page de manuel de GitHub fork :

fork

Une fois le clone terminé, votre référant aura une télécommande nommée "Origin" qui pointe vers votre fork sur GitHub.
Ne laissez pas le nom vous confondre, cela ne pointe pas vers le dépôt initial que vous avez créé. Pour vous aider à garder une trace de ce dépôt, nous allons ajouter une autre télécommande nommée "en amont":

$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream

# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master

# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master

Vous avez également un ne gemme Ruby qui peut faciliter ces opérations GitHub .

forked

Voir aussi " Git fork est git clone? ".

660
VonC

En plus de la réponse de VonC, vous pouvez le modifier à votre guise.

Après avoir récupéré de la branche distante, vous devez toujours fusionner les commits. Je remplacerais

$ git fetch upstream

avec

$ git pull upstream master

puisque git pull est essentiellement git fetch + git merge.

96
n00shie

Cette vidéo montre comment mettre à jour un fork directement depuis GitHub

Pas:

  1. Ouvrez votre fourche sur GitHub.
  2. Cliquez sur Pull Requests.
  3. Cliquez sur New Pull Request. Par défaut, GitHub comparera l’original à votre fork, et il ne devrait y avoir rien à comparer si vous n’avez apporté aucune modification.
  4. Cliquez sur switching the base. Maintenant, GitHub comparera votre fork avec l'original, et vous devriez voir toutes les dernières modifications.
  5. Cliquez sur Create a pull request pour cette comparaison et attribuez un nom prévisible à votre demande d'extraction (par exemple, Mettre à jour à partir de l'original).
  6. Cliquez sur Create pull request.
  7. Faites défiler la liste et cliquez sur Merge pull request et enfin Confirm fusionner. Si votre fourche n’a subi aucune modification, vous pourrez la fusionner automatiquement.
62
Dmitry Pavlov

Utilisation:

git remote add upstream ORIGINAL_REPOSITORY_URL

Cela définira votre amont sur le référentiel que vous avez créé. Alors fais ceci:

git fetch upstream      

Cela récupérera toutes les branches, y compris master, du référentiel d'origine.

Fusionner ces données dans votre branche principale locale:

git merge upstream/master

Transférez les modifications dans votre référentiel forké, c’est-à-dire dans Origin:

git Push Origin master

Voila! Vous avez terminé la synchronisation du référentiel d'origine.

53
Akshayraj Kore

Si vous utilisez l'application de bureau GitHub, un bouton de synchronisation est situé dans le coin supérieur droit. Cliquez dessus puis Update from <original repo> en haut à gauche.

S'il n'y a pas de modifications à synchroniser, cela sera inactif.

Voici quelques captures d'écran pour vous faciliter la tâche.

1
sudo bangbang