6Juin

Synchroniser un « Fork » avec son dépôt d’origine sur Github

Ça nous arrive des fois de vouloir mettre à jour un Fork avec son dépôt d’origine, pour faire des modifications, une contribution ou même juste pour avoir les derniers commits du projet.

 

1. Ajout d’un Upstream

 

On appelle le dépôt d’origine d’un fork un upstream, pour commencer on va afficher les remotes disponibles de notre projet avec la commande git remote -v :

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

 

On peut voir qu’on a que nos liens « origin » de notre fork sur Github, on ajoute le dépôt d’origine (upstream) avec la commande git remote add upstream et le lien du dépôt d’origine :

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

 

Maintenant si on  execute la commande git remote -v on aura :

$ 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)

 

2. Synchroniser le Fork avec son dépôt d’origine

 

On commence par synchroniser les deniers commits du dépôt d’origine, cela va permettre d’enregistrer les modifications en local dans la branche upstream/master :

$ 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

 

On fait un switch vers la branche ‘master’ du Fork :

$ git checkout master
Switched to branch 'master'

 

Maintenant on fait une fusion (merge) entre le dépôt d’origine et le Fork avec la commande git merge upstream/master :

$ 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 on a pas fait des commits directe sur notre Fork, Git va faire un merge en « fast-forward » 🙂

Et pour finir on envoie les nouveaux commits du Fork à son Remote (notre compte Github) avec la commande git push :

$ git push
Delta compression using up to 8 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 4.66 KiB | 0 bytes/s, done.
Total 11 (delta 7), reused 0 (delta 0)
To https://github.com/YOUR_USERNAME/YOUR_FORK.git
   a422352..5fdff0f  master -> master

 
Et voilà !

 

Pour plus d’informations :

Configuring a remote for a fork.

Syncing a fork.

Partager cet Article

un commentaire

  1. ooo it’s gets harder 😮

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont marqués *

*

Fethi El Hassasna © Copyright 2017, Tous droits réservés