GitHub – Mettre à jour un fork
Si vous développez sur des projets Open Source, vous serez sûrement amenés à utiliser Git, logiciel de gestion de version, et GitHub, hébergeur de dépôts Git. Si l’univers GitHub ne vous est pas familié, je vous conseille la vidéo de Grafikart qui explique quelques notions essentielles. Dans cet article, nous allons aborder la mise à jour d’un fork (copie d’un dépôt).
Imaginons que j’ai créé un fork cicoub13/superprojet du dépôt google/superprojet.
Quelques temps après, des modifications (commits) ont été faites sur le dépôt source et mon fork n’est donc plus à jour. Voici la solution pour mettre à jour en ligne de commande votre fork.
Si ce n’est pas déjà fait, ajoutez le dépôt source en tant que dépôt upstream :
git remote add upstream git@github.com:google/superprojet.git
Vous pouvez vérifier que tout est correct avec la commande :
git remote -v origin https://github.com/cicoub13/superprojet.git (fetch) origin https://github.com/cicoub13/superprojet.git (push) upstream https://github.com/google/superprojet.git (fetch) upstream https://github.com/google/superprojet.git (push)
Il faut maintenant récupérer les mises à jour dans upstream :
git fetch upstream
Et c’est là où il y a une petite astuce. J’avais l’habitude de faire un merge (git merge upstream/master) pour mettre à jour mon fork. Mais cela laisse une trace de la mise à jour, ce qui peut être mauvais pour une future pull request (commits de merge affichés). La solution est donc de faire un rebase sur la branche de travail depuis master :
git rebase upstream/master
Comme je suis sûr que vous développez proprement et que vous créez toujours une branche pour faire des modifications, aucun conflit ne doit apparaître lors de cette opération. Il suffit ensuite de pousser les modifications sur GitHub (de master et de votre branche) :
git push origin my-branch git push origin master
Source : Keeping a GitHub fork updated
Ce billet est très intéressant