Première Pull Request sur Github

Je suis sur Github depuis bientôt un an, mais je n’avais encore jamais fait de « pull request ». Je n’étais pas assez à l’aise avec Git avant et je craignais peut-être de faire une erreur dans le dépôt de quelqu’un d’autre. Il y a quelques jours, j’ai finalement fait ma première pull request.

Pour une première fois, je ne me suis pas occupé de corriger un bug ou de coder une fonctionnalité. J’ai simplement ajouté Coldark dans le dépôt des thèmes pour Prism.js. Cela reste un premier pas.

Faire une pull request sur Github

Dans mon cas, la procédure a été simple. Il suffit de se placer dans le dépôt où l’on souhaite contribuer. Là, vous verrez un bouton « Fork ».

Fork Github

En cliquant dessus, une copie de ce dépôt sera placée sur votre compte.

Exemple de copie de dépôt Github

À partir de là, il suffit de cloner votre copie dans un répertoire sur votre ordinateur. Vous faîtes vos modifications. Vous ajoutez les fichiers modifiés ou créés à Git, puis vous créez un commit et vous mettez à jour votre dépôt distant.

En résumé :

git clone git@github.com:votreCompte/copie-du-depot.git
// vos modifications
git add .
git commit -m "votre message"
git push

Ces étapes sont donc basiques. Il ne vous reste plus qu’à vous rendre sur Github dans la copie du dépôt. Il vous indiquera si votre copie est à jour et, si c’est le cas, vous pouvez créer votre pull request. Github vous affichera les changements. Si tout vous semble bon, il ne reste plus qu’à ajouter un message et à envoyer la pull request. Ensuite, vous attendez qu’un mainteneur du dépôt valide ces changements.

Si vous avez suivi les règles de participation généralement inscrites dans le dépôt, vos modifications devraient être ajoutées. Sinon, le mainteneur vous demandera peut-être d’effectuer des modifications.

De même, si votre la copie du dépôt n’était pas à jour, vous aurez sans doute d’autres manipulations à effectuer.

Que faire ensuite ?

Lorsque vos modifications sont ajoutées au dépôt initial, Github vous propose de supprimer votre copie. Il est donc possible de le faire, mais cela gêne un peu l’historique du dépôt. Il sera affiché « unknown repository » plutôt que votre copie dans l’historique. Ceci dit, ça reste une option si vous ne voulez pas surcharger votre compte de forks.

Exemple : unknown repo après pull request

Si vous décidez de conserver la copie, et que vous souhaitez la garder à jour au cas où vous auriez d’autres ajouts à faire, vous risquez d’être confronté à un problème. Dans mon cas, Github m’affichait que j’avais « 1 commit en avance et 1 en retard » par rapport au dépôt original… J’ai suivi les instructions de Github dans la documentation, en ajoutant un remote et en créant un merge. Résultat : « 2 commits en avance, 1 en retard ». Ce n’était pas le résultat souhaité.

Voici la procédure que j’ai suivi pour que ma copie soit à jour :

git remote add upstream git@github.com:Mainteneur/depot-initial.git
// Vérifiez que vous êtes bien sur votre branche master
git checkout master
git reset --hard upstream/master
git push --force

En temps normal, j’évite d’utiliser --force, mais ici je savais que je n’avais aucun changement en attente sur ma copie. Tout ce que je souhaitais c’était mettre à jour ma copie, donc l’option --force n’allait pas poser de problème.

D’après ce que j’ai pu lire, j’ai eu ce problème parce que je n’ai pas créé de branche ; j’ai travaillé directement sur master pour le peu que j’avais à faire… Donc, si vous pensez à créer une branche, vous ne devriez pas avoir à faire les manipulations décrites au dessus.

Mise à jour : Effectivement, en créant une branche ce problème n’apparaît pas. Pour conserver le fork à jour, il suffit de faire :

git remote add upstream git@github.com:Mainteneur/depot-initial.git
git fetch upstream
// Si besoin :
git checkout master
// Puis :
git merge upsteam/master
// Enfin :
git push

Pour finir, si vous n’êtes pas développeur, mais que vous souhaitez contribuer à l’open source en mettant à jour une documentation par exemple, NextInpact vous explique comment créer des pull requests sans installer Git. Tout peut se faire en ligne.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.