# 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 (opens new window) (of BitBucket, GitLab (opens new window), …) 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:
# Registratie
In de opleiding gebruiken we Git (opens new window) samen GitHub (opens new window), en dan in het bijzonder GitHub Education (opens new window) en GitHub Classroom (opens new window)). Sommige opdrachten ga je indienen op GitHub (opens new window). Voor we Git (opens new window) installeren maken we een GitHub-account aan, omdat we die accountgegevens straks gaan ingeven tijdens het configureren van Git.
# 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.
Maak het bestand .gitignore_global
aan in de users folder. Voeg de inhoud toe uit het voorbeeld.
Om de globale instellingen te laten gelden moeten we dit .gitignore_global
bestand toevoegen aan de Git configuratie:
Mac en andere Linux distro’s:
git config --global core.excludesfile ~/.gitignore_global
Windows:
git config --global core.excludesfile "%USERPROFILE%\.gitignore_global"
Powershell:
git config --global core.excludesFile "$Env:USERPROFILE\.global_gitignore"
Verificatie van het .gitignore_global
bestand:
git config --global core.excludesfile
Merk je $HOME/.gitignore_global
of %USERPROFILE%\.gitignore_global
dan is er iets verkeerd gegaan.
# .gitconfig
In het globaal .gitconfig
bestand staat nu in het [core]
onderdeel een eigenschap excludesfile
vermeld. De waarde hiervan verwijst naar het .gitignore_global
bestand (absoluut pad).
[user]
email = [email protected]
name = drdynscript
[core]
editor = \"C:\\Users\\phili\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" --wait
excludesfile = C:\\Users\\phili\\.gitignore_global
[init]
defaultBranch = main
[url "https://"]
insteadOf = git://
[diff]
external = code
[merge]
tool = vscodemerge
[mergetool "vscodemerge"]
trustExitCode = false
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Voorbeeld
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
*.pyc
*.pyo
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
*.msi
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
desktop.ini
# Temporary files #
###################
*.bak
*.swp
*.swo
*~
*#
# IDE files #
#############
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
.idea
.iml
*.sublime-workspace
# Local History for Visual Studio Code
.history/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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 | [email protected] |
**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
