Comment synchroniser votre fourche avec le référentiel Git d'origine

Vous contribuez à un projet open-source et vous avez remarqué que votre fork n'est pas synchronisé avec le référentiel d'origine. Comment pouvez-vous corriger cela?

TL; version DR

# Add a new remote upstream repository git remote add upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git # Sync your fork git fetch upstream git checkout master git merge upstream/master

Ajouter un nouveau référentiel distant en amont

Vous avez cloné votre fourchette sur votre ordinateur portable et commencé à travailler sur votre problème.

Saviez-vous que votre fourchette est orpheline? Si vous répertoriez le référentiel distant configuré, vous ne verrez que votre fork comme origine:

git remote -v origin //github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin //github.com/YOUR_USERNAME/YOUR_FORK.git (push)

Il n'y a aucun signe de parents! Où se trouve le référentiel d'origine?

Nous devons configurer ces informations pour restaurer la relation familiale en ajoutant un nouveau référentiel distant en amont:

git remote add upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

Vous avez sauvé la famille! Vous pouvez maintenant voir à la fois le référentiel d'origine et le fork:

git remote -v origin //github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin //github.com/YOUR_USERNAME/YOUR_FORK.git (push) upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

Synchronisez votre fourche

Tout est maintenant mis en place. Vous pouvez synchroniser votre fork avec seulement 2 commandes.

Assurez-vous que vous êtes à la racine de votre projet et également dans la branche master. Sinon, vous pouvez vérifier dans la branche principale:

git checkout master Switched to branch 'master'

Maintenant, vous devez récupérer les modifications du référentiel d'origine:

git fetch upstream remote: Enumerating objects: 16, done. remote: Counting objects: 100% (16/16), done. remote: Compressing objects: 100% (7/7), done. remote: Total 7 (delta 5), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (7/7), 1.72 Kio | 160.00 Kio/s, done. From //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY 909ef5a..0b228a8 master -> upstream/master

Et fusionnez les modifications dans votre branche principale:

git merge upstream/master Updating 909ef5a..0b228a8 Fast-forward node.js/WorkingWithItems/batch-get.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/batch-write.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------- node.js/WorkingWithItems/delete-item.js | 37 ++++++++++++++++++------------------ node.js/WorkingWithItems/get-item.js | 31 +++++++++++++++++-------------- node.js/WorkingWithItems/put-item-conditional.js | 51 +++++++++++++++++++++++++------------------------- node.js/WorkingWithItems/put-item.js | 49 ++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/transact-get.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/transact-write.js | 79 ++++++++++++++++++++++++++++++++++++++++------------------------------------- node.js/WorkingWithItems/update-item-conditional.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/update-item.js | 47 ++++++++++++++++++++++++---------------------- 10 files changed, 282 insertions(+), 260 deletions(-)

C'est ça! Votre fourchette est maintenant à jour.

Des questions? N'hésitez pas à me contacter sur Twitter!