Faire une pull-request

Publié le


Qu'est-ce qu'une pull-request ?

Difficile de parler de fork sans évoquer la pull-request. Mais qu'est-ce que c'est que ce vilain mot ?

En fait, une pull-request désigne tout simplement l'action qui consiste à demander au détenteur du dépôt original de prendre en compte les modifications que vous avez apportées sur votre fork et que vous souhaitez partager.

Il a alors plusieurs possibilités de son côté : commenter votre demande (par exemple si votre code ne respecte pas les normes PSR-2 sur Thelia), refuser votre demande ou bien entendu, l'accepter !

Le fait d'accepter votre pull-request a aussi un petit nom, c'est le merge.

Comment fait-on une pull-request ?

Tout d'abord, il faut que votre fork soit en plus sur votre machine. Il faut donc le cloner :

git clone git@github.com:username/thelia.git

Ensuite, je vous conseille de créer une branche dédiée au travail que vous allez effectuer. Par exemple si vous souhaitez améliorer l'ergonomie du back-office, créez une branche backoffice qui sera une copie de la branche master (pour être bien à jour avec votre master) :

git checkout -b backoffice master

Désormais vous pouvez faire votre petite tambouille et écrire vos commits. Mais ne faite pas de push tout de suite !

Pour effectuer un push il va falloir que votre dépôt soit synchro avec le dépôt d'origine. On va donc ajouter à votre fork une liaison avec le dépôt original :

git remote add upstream https://github.com/thelia/thelia.git

Ensuite, mettez-vous sur votre branche master et récupérez les modifications de la branche master du dépôt original pour être synchro :

git checkout master
git pull --ff-only upstream master

Vous pouvez maintenant vous remettre sur votre branche :

git checkout backoffice

Ensuite, pour garder un historique de branche propre, il est conseillé de faire un rebase.

En effet, sans le rebase, votre historique ressemblera un peu à une toile d'arraignée avec des branches de partout. Avec le rebase, vos commit de la branche backoffice seront réappliqués à la suite de votre branche master (comme si vous n'aviez travaillé que sur une seule branche) :

git rebase master

Voilà, il ne vous reste plus qu'à pousser vos modifications en ligne :

git push origin backoffice

Attention, il se peut que git vous demande de faire un git pull. N'en faites rien sous peine de récupérer un max de conflits ! Forcez l'envoi de vos modifications en faisant :

git push -f origin backoffice

Vos modifications partent donc sur votre compte github en ligne mais pour le moment, le dépôt d'origine n'est pas impacté. Il faut maintenant demander la fusion de vos modifications sur le projet.

Pour ce faire, rendez-vous sur votre compte github en ligne et sélectionnez votre branche backoffice :

Ici, un bouton vert devrait apparaitre pour vous proposer de faire votre pull-request tant attendue :

Vous pouvez y aller ! Cliquez dessus !

Et voilà il ne vous reste plus qu'à commenter votre demande, à la valider et à patienter jusqu'à ce qu'elle soit prise en compte ;-)

Ajouter votre commentaire

Les commentaires

Search