# Introductie
# Git
Git staat voor “Global Information Tracker”. Het is een revisie beheersysteem (Eng. revision control) en een broncode (Eng. source code) management systeem (SCM) vergelijkbaar met het alomgekende SVN-systeem (2001 e.v.).
Het Git-systeem, initieel ontwikkeld door Linus Torvalds voor de Linux Kernel Development in 2005, voldoet aan een aantal vereisten (requirements):
- gratis
- eenvoudig, snel en efficiënt
- betrouwbaar
- schaalbaar (scalable)
Met honderden teamleden kunnen samenwerken aan hetzelfde project. - geschiedenis
Weten wie wat gedaan heeft en wanneer? - transacties; Meerdere acties bundelen.
- ondersteuning voor branches
Afsplitsing van het hoofdproject die later terug kan samengevoegd worden met het hoofdproject. - …
Iedere Git-werkmap bevat een volledige repository met een overzicht van de geschiedenis en bevat ook tracking capaciteiten. Git is niet afhankelijk van een centrale opslagplaats!
Nieuwe versies van een app worden eerst lokaal bewaard in een lokale copy van de centrale opslagplaats (server). Deze lokale opslagplaats kan later gesynchroniseerd worden met de centrale opslagplaats. Conflicten in versies worden aangeduid door de Git-software, zodat een teamlid deze kan oplossen!
# Installatie
Zie:
# Configuratie
Zie:
# GitHub
GitHub is een webgebaseerde (web-based) service om software development projecten te herbergen (hosten) gebruik makend van het Git revisie (revision control) beheersysteem. Het wordt veel gebruikt voor open-source software development projecten.
GitHub bevat de volgende plannen:
- Private repositories (betalend)
- Public repositories (gratis en open-source)
- GitHub Enterprise (GitHub systeem opzetten op eigen servers).
Via GitHub (of BitBucket, GitLab, …) kunnen meerdere mensen samenwerken aan 1 of meerdere repositories d.m.v. een remote server. Elk teamlid van een repository heeft meestal een lokale kopie van deze repository staan, en kan zijn / haar lokale wijzigingen doorvoeren naar de remote server. De andere teamleden kunnen dan hun lokale kopie synchroniseren met de remote server.
Registratie:
# README.md
Op GitHub, GitLab en BitBucket staat dit README.md
bestand o.a. in de hoofdfolder (top-level directory). Dit bestand, met de markdown syntax, wordt automatisch geconverteerd naar HTML. Het wordt gepresenteerd wanneer we de Git repository bezoeken. Het README.md bestand bevat meestal informatie over andere bestanden, folders of archieven binnen dezelfde repository. De naam wordt meestal beschreven in capitalen (uppercase), behalve de extensie.
Het README.md
bestand bevat meestal één of meerdere onderwerpen als inhoud:
- Omschrijving van de repository (project);
- Oplijsting van aanwezige bestanden en folders;
- Configuratie en installatie instructies;
- Documentatie;
- Gekende bugs;
- Aanvragen voor toekomstige nieuwe features;
- Auteurs;
- Copyright en licentie.
# .gitignore
Via een .gitignore
bestand in de root van een Git-enabled project vermelden we de folders en/of bestanden die we niet in de online repository willen overbrengen. Courante onderdelen binnen dit bestand zijn goed samengevat in deze Gist .gitignore (opens new window).
Het .gitignore
bestand bevat meestal regels voor IDE’s, zoals JetBrains, Miscrosoft Visual Code, Dreamweaver, … . Daarnaast moet gecompileerde code, zoals exe, com, rar, … vermeld worden. Packages, logs, cache, tijdelijke folders, … maken ook deel uit van het .gitignore
bestand. Het onderstaande bestand geeft een goede indicatie van een courant .gitignore
bestand. Via gitignore.io (opens new window) kunnen we zo’n bestand genereren.
Naast dit lokaal bestand kunnen we ook een globaal .gitignore
bestand aanmaken. Onder de Home folder (~/.gitignore_global
) van de gebruiker maken we het bestand .gitignore_global
aan waarin we de algement globale .gitignore
zullen toevoegen. Op deze manier hoeven we enkel in het lokaal bestand applicatiespecifieke instellingen toe te voegen.
Opdat deze globale instellingen van kracht worden moeten we dit .gitignore_global
bestand toevoegen aan de Git configuratie:
git config --global core.excludesfile ~/.gitignore_global
Meer informatie over dit .gitignore_global
bestand via de dotfiles.
# Aanmaak online repository
In deze workflow maken we eerst een repository aan op GitHub via +
teken en vervolgens New Repository
.

Definieer vervolgens:
- de eigenaar van de repository, bijv.
drdynscript
(selecteer jouw eigen GitHub username) - de naam van de repository, bijv.
github-tutorial-onlinefirst
- de omschrijving van de repository, bijv.
GitHub Tutorial - Aanmaak van een online repository
- selecteer de zichtbaarheid van de repository (
public
betekent zichtbaar voor iedereen,private
enkel zichtbaar voor bevoegde personen) - tenslotte kunnen we kiezen tussen het initaliseren van de repository of het koppelen van deze repository aan een lokale folder
- in deze flow kiezen we voor het initialiseren van de repository door tenminste een van de bestanden
README
,.gitignore
enlicense
te selecteren.

- Druk vervolgens op de Create Repository knop.

De repository is aangemaakt en geinitaliseerd. Deze repo bevat de bestanden (die aangevinkt waren tijdens de setup van een repo). Standaard wordt de content uit het README.md
bestand omgevormd tot HTML en gevisualiseerd op de startpagina van een repo.
Om deze online repo op je computer te krijgen klik je op de groene knop Code en kopieer vervolgens de web URL.
Open de terminal (macOS), Windows Powershell, Command Prompt of een andere commandline tool. Voer de volgende commandoregel uit gebruik jouw eigen webURL:
git clone https://github.com/drdynscript/github-tutorial-onlinefirst.git
De volgende output verschijnt in de commandline:

Openen van VisualStudio Code via commandline:
code .
Lokale folder (kloon van de online repo):

Breng de volgende wijzigingen (gebruik jouw eigen gegevens) aan de README.md
file:
# GitHub Tutorial online first
GitHub Tutorial - Aanmaak van een online repository
| | |
| --------- | ------------------------------ |
| Firstname | Philippe |
| Lastname | De Pauw - Waterschoot |
| Gender | :male_sign: |
| Email | philippe.depauw@arteveldehs.be |
**GRADUAAT PROGRAMMEREN ARTEVELDEHOGESCHOOL**
We :heart: **Programming** :thumbsup: **Graphics** make **Cool** :poop:
2
3
4
5
6
7
8
9
10
11
12
13
Voor de volgende commando’s uit:
- Toevoegen van bestanden en mappen aan de volgende commit.
git add *.* of git add .
- Commit of doorvoeren van de toegevoegde bestanden en mappen.
git commit -m "Update Git Repository
- Push of versturen van de commit naar de online repository.
git push

Ververs de webpagina van de online repo:

# Aanmaak lokale repository
In deze workflow maken we eerst een repository aan op GitHub via +
teken en vervolgens New Repository
. Op een gelijkaardige manier dan in het voorgaande hoofdstuk. Het enigste verschil is dat we deze repository niet initialiseren. De bestanden README.md
, .gitignore
en LICENSE
worden niet aangevinkt.

- Druk vervolgens op de Create Repository knop.

Maak een nieuwe lokale folder aan bijv. met de naam github-tutoral-localfirst
.

Open deze aangemaakte folder in VisualStudio Code. Maak vervolgens een README.md
bestand hierin aan. Kopieer het .gitignore
bestand en het LICENSE
bestand uit het vorige hoofdstuk en voeg deze vervolgens toe aan deze folder.
Initialiseer de lokale folder als een git
folder via het commando: git init
. De commandline geeft de volgende melding: Initialized empty Git repository in C:/Users/phili/ahs/pgm/college/github-tutorial-localfirst/.git/
.
Om de lokale folder te verbinden aan de online GitHub folder voeren we het volgende commando uit:
git remote add origin https://github.com/drdynscript/github-tutorial-localfirst.git
Schrijf de volgende Markdown in het README.md
bestand:
# GitHub Tutorial local folder first
GitHub Tutorial - Aanmaak van een online repository local folder first
**GRADUAAT PROGRAMMEREN ARTEVELDEHOGESCHOOL**
We :heart: **Programming** :thumbsup: **Graphics** make **Cool** :poop:
2
3
4
5
6
Voor de volgende commando’s uit:
- Toevoegen van bestanden en mappen aan de volgende commit.
git add *.* of git add .
- Commit of doorvoeren van de toegevoegde bestanden en mappen.
git commit -m "Update Git Repository
- Push of versturen van de commit naar de online repository.
git push -u origin master
