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

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

Nu gaan we een apparte "branch" of tak aanmaken: $ 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

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

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).

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

Na het bewerken sluit je de editor af

Git laat de aanpassingen zien

Waarschuwing:
  • Belangrijk
  • Het is belangrijk dat je hier iets ingeeft, doe je dat niet dan zal de commit geannuleerd worden

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

Let op!:
  • Let op!
  • Om de volgende stappen uit te voeren moet je lid zijn van onze git groep voor deze "Repository", stuur daarom eerst een email naar <git@linuxgebruikers.nl> met daarin jouw accountnaam, we zullen je dan zo snel mogelijk toevoegen aan de groep en zodra dat gedaan is kun je verder gaan. Je kunt dit alles natuurlijk ook overslaan en zelf een eigen repository op GitLab of een andere site (GitHub, BitBucket, ...) aanmaken.
Tip:
  • Tip
  • Je kunt ook het "commit" bericht toevoegen zonder dat je een teksteditor moet openen, hiervoor geef je de -m parameter met daarna het bericht tussen aanhalingstekens. Bijv. $ git commit -a -m "Artikel GIT toegevoegd"

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.

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.

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

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

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.

.

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

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

"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.

Waarschuwing:
  • Opmerking
  • De meeste Git aanbieders ondersteunen zowel HTTPS als SSH, als je gebruik wil maken van SSH kun je bij deze aanbieders vaan 1 of meerdere SSH-Keys uploaden. Dit laat toe om in te loggen met een key/password combinatie, of met een OpenPGP Smartcard of hardware token die openPGP functionaliteit aanbied (zoals bijv. een YubiKey 4). Voor het aanmaken en instellen van dergelijke setup hebben we een apart SSH Beveiligen met Sleutel of YubiKey 4 artikel geschreven.

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. ;-)