↓ Naar de hoofdinhoud gaan

Oefeningen

·1834 woorden·9 mins
Inhoudsopgave

Oefening 1
#

Installatie Git
#

Git is beschikbaar op alle besturingssystemen. Voor Windows en OS-X kunnen binaire bestanden gedownload worden van https://git-scm.com. Voor Linux distributies is Git meestal al geïnstalleerd of beschikbaar via het package management systeem van de distributie. Mocht het toch niet beschikbaar zijn kan de broncode gedownload worden van https://mirrors.edge.kernel.org/pub/software/scm/git/ en kan Git handmatig gecompileerd worden.

De rest van dit document gaat er van uit dat je Windows gebruikt, desalniettemin zijn de instructies grotendeels ook van toepassing voor Linux en OS-X.

Tijdens de installatie kan je kiezen welke teksteditor gebruikt wordt om commit boodschappen te typen. Kies hier voor Visual Studio Code.

Gebruik in de rest van de installatie de default opties. Na de installatie zou het git commando beschikbaar moeten zijn in PowerShell en cmd.

Configuratie
#

Git houd bij wie wijzigingen doorvoert, natuurlijk moet jij als gebruiker wel meegegeven wat jouw naam en email adres zijn.

Deze informatie is een essentieel onderdeel van Git en het is dan ook niet mogelijk om commits uit te voeren zonder dat Git correct geconfigureerd is. Gebruikt onderstaande commando’s om je identiteit in te stellen.

git config --global user.name “Voornaam Achternaam”
git config --global user.email “rxxxxxxx@student.thomasmore.be” 

Git Branching
#

Maak de eerste 8 interactieve oefeningen op

Learngitbranching
#

Oefening 2
#

Aanmaken van een Git repository
#

Er worden verschillende gratis git repositories aangeboden. De meeste services staan het niet toe om privé repositories aan te maken met een gratis abonnement.

Maak een account aan op github en maak een repository aan voor je project. Zorg ervoor dat het repository niet door onbevoegden bekeken kan worden.

SSH Keys
#

Om de communicatie met de git server op een veilige manier te laten verlopen maken we gebruik van asymmetrische SSH encryptie.

Windows bevat sinds kort een ingebouwde Open-SSH client. In de nieuwste versies van Windows 10 is deze geactiveerd, als je nog met een oudere versie werkt kan je deze via Instellingen > Apps > Apps en onderdelen > Optionele onderdelen > Een onderdeel toevoegen installeren.

Eens dit gebeurd is kan je een SSH key aanmaken, open hiervoor PowerShell (of cmd). Je kan kiezen waar je de SSH sleutel plaatst, de meeste programma’s gaan er echter van uit dat deze zich in %USERPROFILE%\.ssh bevind, dit is dan ook de beste locatie. Navigeer in PowerShell naar je home folder en voer vervolgens onderstaand commando uit.

ssh-keygen 

Gebruikt de default waarden voor de namen van de bestanden, id_rsa.pub bevat je publieke sleutel. Dit is de sleutel die je met BitBucket moet delen. Het andere bestand id_rsa bevat je private key. Tijdens het genereren van je sleutels kan je een wachtwoord toevoegen om je private key te encrypteren. Volgens de best practices moet je je sleutel beveiligen. Dit betekend echter dat het wachtwoord elke keer je git commit of git pull uitvoert je het wachtwoord moet ingeven. Kies zelf of je al dan niet een wachtwoord toevoegt.

SSH Keys registreren op github
#

Navigeer naar je profiel in github.

Zoek uit hoe je, jou key kan toevoegen. Open nu het id_rsa.pub bestand dat je aangemaakt hebt en kopieer de inhoud naar github.

.gitignore
#

Bezoek https://www.gitignore.io en maak een .gitignore bestand aan voor jouw besturingssysteem en Visual Studio Code. Plaats dit bestand in je project directory.

Initialiseren lokaal Git repository
#

Maak een nieuwe webpagina aan die als test zal dienen voor git. Open de folder waar je deze webpagina bewaard hebt in een terminal emulator (PowerShell/cmd) en gebruikt het

git init

commando om lokaal een Git repository aan te maken. Gebruik vervolgens het commando

git add filename 

om je bestanden toe te voegen aan het repository. Gebruikt nu

git commit

om je toegevoegde bestanden aan de staging area toe te voegen. Vooraleer je de toegevoegde bestanden kan uploaden naar een server moet je een remote server toevoegen, je BitBucket repository. Dit kan met het commando

git remote add linkNaarJeRepository 

De URL voor je repository kan je vinden op github.

Tenslotte moet nog een push uitgevoerd worden om je bestanden in het remote repository te krijgen. In de meeste gevallen is het commando git push voldoende. Maar omdat elke keer dat je lokaal een nieuwe branch aanmaakt moet het commando

git push -u origin branchName 

gebruikt worden om aan te geven welke upstream branch (-u) overeenkomt met de lokale branch. Gebruik dit commando om je website te pushen naar de masterbranch in je repository. Controleer tenslotte op de BitBucket website of al je bestanden correct zijn toegevoegd aan het repository.

Oefening 3
#

De bestanden
#

Voorzie een werkdirectory ‘git01’, die voor het GIT project gebruikt zal worden.
Maak vervolgens volgende tekstbestanden aan:
• Bestandenlijst.txt
• Hoofdstuk01.txt
• Hoofdstuk02.txt
• Hoofdstuk03.txt
• Geen_onderdeel.doc
Zorg dat bestanden met de extensie ‘.doc’ niet meegenomen worden in het versiebeheer
wanneer je het commando ‘git add .’ geeft
Voeg alle bestanden met het voorgaande commando aan de staging area toe en maak
de eerste repository (die alleen lege txt-bestanden bevat).

Invulling bestanden
#

oefenbestanden

Maak een branch aan en noem deze content/firstcontent.
Schakel over naar de branch en plaats in ‘Bestandenlijst.txt’ alle bestandsnamen met
extensie txt onder elkaar.
Zorg dat het bestand in de staging area aangepast wordt en maak een repository van de
branch aan. Geef als notitie (message) “Bestandenlijst ingevuld” mee. Pas ‘Hoofdstuk1.txt’ aan met de tekst uit meegeleverd bestand ‘info01.txt’.
Probeer het bestand in de staging area up te daten en een repository van de branch aan
te maken met notitie (message) “Hoofdstuk01 ingevuld”. Lukt dit? Zo niet, waarom niet? Pas ‘Hoofdstuk2.txt’ aan met de tekst uit meegeleverd bestand ‘info02.txt’.
Probeer het bestand in de staging area up te daten en een repository van de branch aan
te maken met notitie (message) “Hoofdstuk02 ingevuld”. Lukt dit? Zo niet, waarom niet? Pas ‘Hoofdstuk3.txt’ aan met de tekst uit meegeleverd bestand ‘info03.txt’.
Probeer het bestand in de staging area up te daten en een repository van de branch aan
te maken met notitie (message) “Hoofdstuk03 ingevuld”. Lukt dit? Zo niet, waarom niet? Pas ‘Geen_onderdeel.doc’ aan met volgende tekst: “Dit bestand is slechts een lokaal
bestand en wordt niet in de repository opgenomen.”
Probeer het bestand in de staging area up te daten en een repository van de branch aan
te maken met notitie (message) “Bestandenlijst ingevuld”. Lukt dit? Zo niet, waarom
niet? Controleer de versies met get commando ‘git log –oneline –decorate –graph –-all’.
Wat kan je uit de getoonde informatie afleiden?

De eerste merge
#

De ingevulde bestanden moeten terug in de hoofdbranch ge-update worden om een
nieuwe definitieve versie aan te maken:
Wissel naar de ‘Master’ of ‘Main’ branch en merge de aangemaakte branch met het
commando

git merge content/firstcontent

Controleer de versies met get commando

git log --oneline --decorate --graph –-all

3-way branching
#

Maak een nieuwe branch aan, zijnde ‘content/newcontent01’ voeg vervolgens een lege
lijn toe aan “Hoofdstuk01.txt”, zorg dat deze wijziging in een nieuwe repository
toegevoegd wordt.
Schakel over naar de nieuw aangemaakte branch.
Controleer de versies met get commando

git log --oneline --decorate --graph –-all

Voeg de tekst uit info04.txt achteraan in het bestand ‘Hoofdstuk02.txt” toe, en maak een
nieuwe repository.
Schakel terug over naar de Master branch en bekijk de history van de versies met

git log --oneline --graph --all

Schakel terug over naar de Master branch en voer nu een volgend commando

git merge --no-ff content/firstchange

De optie ‘no-ff’ zorgt dat fast forward niet gebruikt wordt.
Bekijk de history van de versies met

git log --oneline --graph --all

Met bovenstaand commando kan je aldus grafisch de branches zien.

Merging en conflicten
#

Maak een branch ‘content/spelling’ aan en schakel over naar deze branch.
Haal de twee ‘dt’ fouten uit het tekstbestand ‘Hoofdstuk01.txt’ en maak een nieuwe repo
met als bericht ‘dt fouten verwijderd in Hfdstk01’.
Schakel terug over naar de ‘Master’ branch en Zorg dat iedere zin met een hoofdletter
begint. Maak ook hier een repository met als bemerking ‘Hoofdletters in hfdstk01’
Voor opnieuw een 3-way merge uit met de branch ‘content/spelling’.

Je krijgt volgende melding:

g10.png

Vraag de git status op, je krijgt volgende mededeling:

g11.png

Start de editor vanuit de command prompt op voor Hoofdstuk01.
In Hoofdstuk01.txt zijn tussen ‘<<<<<<< HEAD’ en ‘=======’ de lijnen, die lijnen in
de versie van Master getoond, die van de branch content/spelling verschillen getoond.
Tussen ‘=======’ en ‘>>>>>>> content/spelling’ staan de overeenkomstige lijnen
van de branch content/spelling:

g12.png

Men kan nu in de editor de gewenste wijzigingen doorvoeren.
Zorg dat in het resultaat

  • geen ‘dt’ fouten meer staan
  • de zinnen met hoofdletters beginne
  • ‘<<<<<<< HEAD’, ‘=======’ en ‘>>>>>>> content/spelling’ verwijderd zijn
  • Op het einde een lijn met de tekst “Dat was het dan.” Toegevoegd is. Sla het bestand op, update de staging area en geef het commando ‘git commit’.
    De standaard editor, die je bij de installatie verkoos, wordt nu opgestart en je kan eeb
    uitgebreid neerschrijven wat er in de commit van de merge allemaal behouden is uit de
    twee versies.

Bijkomend
#

Er zijn nog volgende merge methodes kort aangehaald:

  • Squashing merging:
    Vanuit de Master:
git merge --squash <branch, die gesquashed moet worden>
  • Rebasing:
    Vanuit de branch, die ge-rebased moet worden:
git rebase master
  • Cherypicking:
    Vanuit Master:
git cherry-pick <repo, die naar Master gekopieerd moet worden>

Oefening 4
#

AWS Hosting
#

Je zal voor IT Topics 2 een kleine website moeten maken, deze moet ergens gehost worden zodat de site van buitenaf bezocht kan worden. In de IT sector worden er bijzonder veel gratis services aangeboden aan studenten, een niet-exhaustief overzicht kan je vinden op https://education.github.com/pack.

Voor IT Topics 2 maken we gebruikt van AWS. AWS is naast Microsoft Azure één van de belangrijkste platformen voor webhosting, machine learning, virtual machines, virtual private servers, … Als student krijg je $100 gratis credit op AWS.

Maak een account aan op AWS Educate (https://aws.amazon.com/education/awseducate/). Dit MOET met je Thomas More emailadres, anders kan niet geverifieerd worden dat je student bent.

Als je geregistreerd bent en je account goedgekeurd is zie je in de navigatiebalk de knop AWS Account staan. Klik hierop. Je zal hier opnieuw enkele registratie stappen moeten voltooien. Eens je account goedgekeurd is heb je toegang tot AWS.

48

Open je AWS Educate account en ga vervolgens naar de AWS Console. Hier zie je een hele hoop services. Zoek de AWS Amplify service en open deze. Amplify integreert zeer goed met Git repositories. Je kan een branch kiezen die in het oog gehouden moet worden. Elke keer er op deze branch een commit gedetecteerd wordt zijn de wijzigingen automatisch doorgevoerd naar je AWS Amplify website.

Maak een nieuwe applicatie aan en kies voor github integratie.

Verbind je AWS en github accounts en selecteer vervolgens het correcte repository en de correcte branch.

Druk nog een paar keer op next. Tenslotte zal je repository door AWS verwerkt worden. Eens dit klaar is kan je je project bekijken op de bijhorende URL.

49

Als je website correct getoond wordt breng je tenslotte een kleine wijziging aan in je lokale git repository en commit je deze. Het resultaat zou na een paar minuten zichtbaar moeten worden op je website.