GIT

Git versie beheersysteem

Git is wat we een Version control system noemen,

Het is ontwikkeld door Linus Torvalds (ja dezelfde persoon als de Linux Kernel). En hij heeft het net zoals de Linux kernel naar zichzelf vernoemd. In zijn woorden “"I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'."git/ zou jargon zijn voor Onaangenaam persoon.

Hij had een goed Versioning Systeem nodig voor zijn Linux kernel en er was geen systeem beschikbaar dat volgens hem voldeed aan zijn eisen (vooral omdat de Linux Kernel zo'n groot project is).. Daarom heeft hij heeft hij besloten om zelf maar iets in elkaar te steken.

Omdat git een tool is voor software ontwikkelaars is heeft het op een eerste zicht niet zo geschikt voor onze doelgroep, maar persoonlijk vind ik git handig om persoonlijke documenten "in sync" te houden, zo kan ik gemakkelijk op 2 verschillende computers (Desktop en Laptop) werken aan deze artikels. Natuurlijk zijn hier ook andere (en misschien betere oplossingen) voor.

Met deze doelgroep in gedachte gaan we dit artikel beperken tot enkele basisfuncties van git. Zoals altijd is het altijd mogelijk om de git manpages ($ man git) te raadplegen (of één van de vele boeken en tutorials beschikbaar voor git).

Het eerste dat we moeten doen is een zogenaamde repository clonen naar onze computer, We hebben hiervoor bij GitLab een project aangemaakt. Om later je bestanden naar het project te "pushen" heb je toegang nodig tot het project. Stuur me daarom een email met daarin jouw GitLab gebruikersnaam en het verzoek om toegevoegd te worden aan het Test project. 1 Om het project te clonen gaan we naar een directory waarin we het project willen plaatsen en geven we het volgende commando: $ git clone https://gitlab.com/linuxgebruikers/Test

Figuur 1. $ git clone https://gitlab.com/linuxgebruikers/Test

Dit zal een directory aanmaken (in de directory waar je op dat moment zit) met de naam Test en alle bestanden in het project zullen naar deze directory gedownload worden.

Wil je de status van het project bekijken gebruik je $ git status

Figuur 2. $ git status

Nu gaan we een apparte "branch" of tak aanmaken: $ git checkout -b CloudyWizzard

Figuur 3. $ git checkout -b CloudyWizzard

Vanaf nu kun je bestanden toevoegen aan jouw persoonlijke fork van het project. Als we na het bewerken van 1 bestand en het toevoegen van 1 bestand de status opvragen krijgen we de volgende melding: $ git status

Figuur 4. $ git status

Om het nieuwe bestand toe te voegen gebruiken we het commando $ git add BESTANDSNAAM

Figuur 5. $ git add patrick.txt

Willen we deze bestanden nu uploaden naar GitLab gebruiken we het commando $ git commit, dit zal je default tekstbewerker openen om een commit message toe te voegen, dit maakt het voor andere gemakkelijker om te weten wat je gedaan hebt. Bijv. kun je schrijven dat je enkele typefouten gecorrigeerd hebt).

Figuur 6. $ git commit

Na het commando $ git commit zal je standaard editor openen:

Figuur 7. $ git commit opent standaard editor

Na het bewerken sluit je de editor af.

Figuur 8. $ git commit na afsluiten editor

Git laat de aanpassingen zien.

Maar na een "commit" zijn we nog niet klaar ! je moet de veranderingen ook nog pushen en dat doe je natuurlijk met het commando $ git push https://gitlab.com/linuxgebruikers/Test CloudyWizzard.

Figuur 9. $ git push https://gitlab.com/linuxgebruikers/Test CloudyWizzard

Je aanpassingen zijn nu beschikbaar in jouw "branch" nu moet je een "pull request" aanvragen zodat de beheerder van het project (in dit geval ben ik dat) jouw aanpassingen kan syncroniseren met het "master" project (branch). gebruik het commando $ git request-pull -p master https://gitlab.com/linuxgebruikers/Test.git/ CloudyWizzard je vervangt "CloudyWizzard" in mijn voorbeelden natuurlijk met jouw eigen branch naam.

Figuur 10. $ git reqest-pull -p master https://gitlab.com/linuxgebruikers/Test.git/

Helaas ondersteund GIT geen "Merge Request" vanuit da commando-regel, daarom moet je met je browser inloggen op de GitLab website en daar een merge request aanmaken.

Als alles goed is verlopen zie je als je inlogt op de GitLab bovenaan in het scherm de tekst You pushed to cloudywizzard" at Linuxgebruikers / Linuxgebruikers_Test 2 minutes ago met rechts van de tekst een knop met Create Merge Request. Klik hierop en volg de instructies op de website.

Figuur 11. https://gitlab.com

GitLab geeft aan om een "Merge Request" aan te maken.

Figuur 12. https://gitlab.com : merge request

Een gedeelte van het formulier om een merge request aan te maken.

Figuur 13. submit knop

De "Submit Merge Request"-knop (onderaan het formulier) om het "Merge Request" in te dienen.

Na het aanmaken van een merge request krijg ik op GitLab een melding en kan ik beslissen om de aanpassingen al-dan-niet door te voeren.

Figuur 14. https://gitlab.com : merge request ingediend

Ik zie in mijn "Dashboard" op GitLab dat er 1 "Merge Request" is.

Figuur 15. https://gitlab.com : melding van Merge Request op mijn Dashboard

Ik kan het "Merge Request" bekijken en eventueel goedkeuren (groene "Merge" knop).

Figuur 16. https://gitlab.com : Merge uitgevoerd

"Merge" is uitgevoerd.

Het is ook aan te raden om voor een push een pull uit te voeren, zo ben je zeker dat je de meest recente versies van de bestanden hebt.

Meer informatie kun je altijd terugvinden in de manpages of de infopages

1 Het is toeval, maar we hebben niet voor GitLab gekozen door de aankoop van GitHub door Microsoft. ik had al een GitLab account. ;-)