Que sont les demandes d'extraction Git et comment les utilisez-vous ?

0
182

Les Pull Requests sont une fonctionnalité des services Git en ligne comme Github et Gitlab. Ils permettent à quiconque de demander l'ajout de modifications, même s'il n'a pas accès au référentiel. Nous verrons comment ils fonctionnent et comment les utiliser pour une collaboration open source.

À quoi sert une demande de tirage ?

Malgré ce que cela peut paraître, git en tant qu'outil est un système complètement décentralisé. Cela signifie que le référentiel sur Github.com et le référentiel sur votre machine locale ne sont pas différents les uns des autres. Vous ne vous connectez pas à Github pour travailler sur un référentiel, vous copiez le code de Github dans votre référentiel local et y travaillez.

Lorsque vous souhaitez envoyer des modifications, vous pouvez effectuer des commits et exécuter git push, en envoyant vos mises à jour à une “distant,” qui peut être n'importe quel autre référentiel Git, mais est généralement un service hébergé en ligne comme Github, Bitbucket ou Gitlab. Cela met à jour le référentiel distant pour qu'il soit synchronisé avec votre référentiel.

Cependant, cela ne fonctionne que lorsque vous avez la permission de pousser les commits, généralement configurés avec un mot de passe ou une clé SSH. Ceci n'est remis qu'aux membres de l'organisation contrôlant le dépôt, sinon tout le monde pourrait modifier l'historique de Git. Si vous n'êtes pas membre de l'organisation, que devez-vous faire lorsque vous souhaitez apporter des modifications ?

Eh bien, il existe un deuxième moyen de mettre à jour un référentiel Git ? ; git tirer. Vous le faites probablement beaucoup chaque fois que vos collègues apportent des changements qui sont poussés. Dans ce cas, vous récupérez les commits du référentiel distant et les synchronisez avec votre référentiel local.

Publicité

Mais, Git est décentralisé, il n'y a donc vraiment aucune différence entre votre référentiel et le référentiel distant. Vous pouvez en fait exécuter git pull à l'envers, à partir du serveur, et c'est le cœur de ce qui fait fonctionner les demandes d'extraction.

Une pull request consiste simplement à dire au serveur distant (et aux personnes qui le maintiennent) que vous avez des commits mis à jour que vous voudriez qu'ils examinent et intègrent au référentiel distant. S'ils acceptent les modifications, le référentiel distant exécutera git pull contre votre référentiel local, intégrant le code sans que vous ayez jamais besoin d'une clé SSH autorisée pour le faire.

L'épine dorsale de la collaboration Open Source

Les requêtes Pull sont constamment utilisées pour les bibliothèques open source. Après tout, une grande partie de la raison d'être de l'open source est que tout développeur peut contribuer au projet si son code est utile.

Les demandes de tirage sont ce qui fait que cela fonctionne. Les mainteneurs du projet, les administrateurs qui le contrôlent, sont ceux qui examinent généralement les demandes d'extraction et décident d'intégrer ou non le code, ou si certains bogues doivent être corrigés avant qu'il ne soit prêt.< /p>

Les requêtes pull ne sont pas exactement une fonctionnalité de git lui-même, donc leur implémentation exacte variera en fonction du service. Mais, pour Github, vous trouverez les demandes d'extraction dans la barre de menus d'un référentiel, qui affiche une liste des demandes ouvertes et fermées que vous pouvez filtrer.

Si vous cliquez sur l'un d'entre eux, vous pouvez afficher les commentaires faits par le demandeur, ainsi que les commits qui lui sont associés.

Publicité

Si vous êtes le responsable du référentiel, vous pouvez examiner et fusionner la demande. Ou, si vous avez des problèmes avec cela, vous devez en discuter, vous pouvez laisser un commentaire et travailler ensemble sur le code. C'est une grande raison pour laquelle les espaces publics comme Github sont parfaits pour la collaboration open source, même quelque chose d'aussi simple que de changer le libellé de la documentation peut être fait en collaboration par n'importe qui.

Les demandes de tirage sont différentes des problèmes. Le suivi des problèmes est une fonctionnalité de nombreux services tels que Github qui permet une correction facile des bogues et une collaboration publique pour les nouvelles fonctionnalités. Essentiellement, chaque problème a un sujet qui peut être discuté par les responsables et la communauté. Par exemple, dotnet/csharplang est le référentiel officiel pour discuter de la conception de C# en tant que langage de programmation. Si vous consultez les problèmes, vous trouverez de nombreuses personnes discutant des concepts pour les futures itérations du langage :

< /p>

Tous les problèmes ne conduisent pas à des demandes d'extraction. Si le problème est résolu par le mainteneur, cela n'aura pas d'importance. Si le problème est résolu par un collaborateur, il devra soumettre une pull request.

Toutes les demandes d'extraction sont soit refusées, soit conduisent directement à des modifications de code dans le référentiel. Les problèmes ne sont qu'un moyen de suivre la progression du développement et les bogues à corriger.

Faire des Pull Requests

Encore une fois, le les étapes pour cela varient en fonction du service que vous utilisez, mais la plupart des collaborations open source se déroulent sur Github, nous allons donc montrer les étapes pour cela.

Rendez-vous sur le référentiel pour lequel vous souhaitez faire une demande et cliquez sur “Nouvelle demande d'extraction” sous l'onglet Pull Requests :

Publicité

Vous avez deux options ici. Si vous êtes membre du référentiel et que vous souhaitez fusionner votre branche de fonctionnalité dans la branche principale, vous pouvez sélectionner les deux branches.

Si vous travaillez sur un open-source référentiel, vous devrez forker le référentiel et le transmettre à Github sous votre propre compte. Ensuite, vous pouvez sélectionner “comparer entre les fourchettes” pour fusionner votre branche master dans sa branche master.

Une fois terminé, la pull request sera ouvert à la discussion, et vous devrez simplement attendre le retour des responsables.

En attendant, vous pouvez vérifier l'état de toutes les demandes d'extraction auxquelles vous êtes impliqué avec les “demandes d'extraction” onglet dans la barre d'en-tête principale.