Wat zijn Git Pull Requests en hoe gebruik je ze?

0
68

Pull-verzoeken zijn een functie van online git-services zoals Github en Gitlab. Ze stellen iedereen in staat om wijzigingen aan te vragen, zelfs als ze geen toegang hebben tot de repository. We zullen bespreken hoe ze werken en hoe ze te gebruiken voor open source-samenwerking.

Wat doet een pull-verzoek?

Hoe het ook lijkt, git als tool is een volledig gedecentraliseerd systeem. Wat dat betekent is dat de repository op Github.com en de repository op je lokale computer niet veel van elkaar verschillen. Je maakt geen verbinding met Github om aan een repository te werken, je kopieert de code van Github naar je lokale repository en werkt er daar aan.

Als je wijzigingen wilt pushen, kun je commits maken en git push uitvoeren, je updates naar een bepaalde “remote,” dat kan elke andere Git-repository zijn, maar is meestal een online gehoste service zoals Github, Bitbucket of Gitlab. Hiermee wordt de externe repository bijgewerkt om gesynchroniseerd te zijn met uw repo.

Dit werkt echter alleen als je toestemming hebt om commits te pushen, meestal geconfigureerd met een wachtwoord of SSH-sleutel. Dit wordt alleen gegeven aan leden van de organisatie die de repo beheren, anders zou iedereen de Git-geschiedenis kunnen wijzigen. Als je geen lid bent van de organisatie, wat moet je dan doen als je wijzigingen wilt aanbrengen?

Nou, er is een tweede manier waarop een Git-repository kan worden bijgewerkt&#8212 ;git trek. U doet dit waarschijnlijk vaak wanneer uw collega's wijzigingen aanbrengen die worden gepusht. In dat geval haal je commits uit de externe repository en synchroniseer je deze met je lokale repo.

Advertentie

Maar Git is gedecentraliseerd, dus er is echt geen verschil tussen je repo en de repo op afstand. Je kunt git pull in omgekeerde richting uitvoeren, vanaf de server, en dit is de kern van wat pull-verzoeken laat functioneren.

Een pull-verzoek houdt in dat je de externe server (en de mensen die deze onderhouden) vertelt dat je een aantal bijgewerkte commits hebt waarvan je wilt dat ze deze bekijken en integreren met de externe repository. Als ze de wijzigingen accepteren, zal de externe repo git pull uitvoeren tegen je lokale repository, waarbij de code wordt geïntegreerd zonder dat je ooit een SSH-sleutel hoeft te hebben die geautoriseerd is om dit te doen.

De ruggengraat van open source-samenwerking

Pull-verzoeken worden constant gebruikt voor open source-bibliotheken. Een groot deel van de reden voor open source is tenslotte dat elke ontwikkelaar kan bijdragen aan het project als zijn code nuttig is.

Pull-verzoeken zorgen ervoor dat dat werkt. De beheerders van het project, de beheerders die er de controle over hebben, zijn degenen die doorgaans pull-verzoeken beoordelen en beslissen of de code al dan niet moet worden geïntegreerd, of dat bepaalde bugs moeten worden verholpen voordat deze klaar is.< /p>

Pull-verzoeken zijn niet echt een functie van git zelf, dus de exacte implementatie ervan is afhankelijk van de service. Maar voor Github vind je pull-verzoeken in de menubalk van een repository, die een lijst met open en gesloten verzoeken toont waar je doorheen kunt filteren.

Als u op een van deze klikt, kunt u de opmerkingen van de aanvrager bekijken, evenals de bijbehorende toezeggingen.

Advertentie

Als u de beheerder van de repository bent, kunt u de aanvraag bekijken en samenvoegen. Of, als je er problemen mee hebt die je moet bespreken, kun je een opmerking achterlaten en samen aan de code werken. Dit is een belangrijke reden waarom openbare ruimtes zoals Github geweldig zijn voor open source-samenwerking, zelfs iets eenvoudigs als het wijzigen van de formulering van de documentatie kan door iedereen gezamenlijk worden gedaan.

Pull-verzoeken zijn anders dan problemen. Het volgen van problemen is een functie van veel services zoals Github waarmee bugs eenvoudig kunnen worden opgelost en openbare samenwerking voor nieuwe functies mogelijk is. In wezen heeft elk probleem een ​​onderwerp dat kan worden besproken door de beheerders en de gemeenschap. Dotnet/csharplang is bijvoorbeeld de officiële opslagplaats voor discussie over hoe C# als programmeertaal is ontworpen. Als je naar de problemen gaat, zul je veel mensen vinden die concepten voor toekomstige iteraties van de taal bespreken:

Niet alle problemen leiden tot pull-verzoeken. Als het probleem wordt opgelost door de beheerder, maakt het niet uit. Als het probleem is opgelost door een medewerker, moet deze een pull-verzoek indienen.

Alle pull-verzoeken worden geweigerd of leiden rechtstreeks tot codewijzigingen in de repository. Problemen zijn slechts een manier om de voortgang van de ontwikkeling bij te houden en welke bugs moeten worden opgelost.

Pulverzoeken maken

Nogmaals, de exacte stappen hiervoor zijn afhankelijk van de service die je gebruikt, maar de meeste open source-samenwerking vindt plaats op Github, dus we zullen de stappen daarvoor laten zien.

Ga naar de repository waarvoor je een verzoek wilt indienen en klik op “Nieuwe Pull Request” onder het tabblad Pull Requests:

Advertentie

Jij heb hier twee opties. Als je lid bent van de repository en je feature branch wilt mergen in de master branch, dan kun je de twee branches selecteren.

Als je aan een open-source werkt repository, moet je de repo forkeren en onder je eigen account naar Github pushen. Vervolgens kunt u “vergelijk over vorken” om je master-branch in hun master-branch samen te voegen.

Eenmaal klaar is, zal het pull-verzoek open staan ​​voor discussie, en je hoeft alleen maar te wachten om terug te horen van de beheerders.

In de tussentijd kunt u de status controleren van alle pull-verzoeken waarbij u betrokken bent met de “Pull Requests” tabblad in de hoofdkopbalk.