Meer informatie over repositories: 2. Git Repositories
Meer informatie over pushen en commits: 4. Git Commits
Meer informatie over GitHub Desktop: 7. GitHub Desktop
Meer informatie over gitignore: 8. Git Files

Stuk overslaan?

Al een beetje bekend met Git? Dan kun je het eerste deel van deze workshop overslaan en doorgaan vanaf 3. Git Forks & Branches

Opdracht 1: Repository aanmaken

In deze opdracht zal je een nieuwe repository aanmaken waarin je een project kan opnemen.

Stap 1: Log in op GitHub en ga naar de homepagina of je dashboard.

Stap 2: Klik op de groene ‘New’ knop aan de linkerkant van de pagina.

Tip

Houd de naam van je repository simpel en beschrijvend. Vermijd spaties en speciale tekens (behalve -).

Stap 3.1: Geef de repository een naam (bijvoorbeeld FirstRepository) en een beschrijving. Kies ook of je de repository public of private wilt maken.

Stap 3.2: Klik op de Create Repository knop.

Goed bezig!

Je hebt nu je eerste repository aangemaakt. Gefeliciteerd!

Opdracht 2: Repository clonen

Nu je een repository hebt aangemaakt, kunnen we deze clonen naar je PC of laptop. In deze workshop gebruiken we GitHub Desktop. Dit programma maakt het beheren van repositories eenvoudig.

Optie 1: GitHub Desktop

Stap 1: Open GitHub Desktop en log in met je GitHub account.

Let op!

Dit moet hetzelfde account zijn waarmee je net de repository hebt aangemaakt.

Stap 2: Klik linksboven op de knop Current Repository.

Stap 3: Klik op Add en selecteer vervolgens Clone Repository.

Stap 3.1: Blijf onder het kopje GitHub.com en zoek onder Your Repositories naar de repository die je zojuist hebt aangemaakt.

Stap 3.2: Kies onder Local Path waar je de repository wilt opslaan.

Stap 3.3: Klik op Clone. De repository is nu als een map op je PC/laptop opgeslagen, bijvoorbeeld in: C:\Users\Gebruikersnaam\Documents\repos.

Optie 2: Terminal

Het is ook mogelijk om een repository te clonen via de terminal.

Stap 1: Open de terminal en navigeer naar de folder waar je wil dat de projectfolder komt te staan.

cd pad\naar\je\project

Stap 2: Haal de url van je repository van GitHub op en voer het volgende commando uit:

git clone [URL]
  • Vervang hierbij URL met de url van je GitHub repository.
  • De url is op te halen door bij een repository op de <> Code knop te drukken en onder het tabje HTTPS de url te kopiëren. Figuur 2.1: HTTPS link op GitHub website van een repository

Gefeliciteerd!

Je hebt nu je repository gecloned.

Opdracht 3: Eerste push

Op dit moment is je repository nog leeg, behalve het .gitignore bestand. Het is tijd om een project of bestand te uploaden.

Iets anders proberen?

In deze opdracht gebruiken we een .NET Applicatie als voorbeeld. Wil je een ander projecttype gebruiken, of een eenvoudig markdown-bestand? Dat kan ook, ga dan verder naar Stap 2.

Stap 1: Open Visual Studio (of een andere IDE naar keuze).

Stap 1.1: Maak een nieuwe solution aan voor een Console Application.

Stap 1.2: Kies de folder die je in de vorige opdracht hebt gecloned als pad voor de solution. Bijvoorbeeld: C:\Users\Gebruikersnaam\Documents\repos

Stap 2: Open GitHub Desktop. De bestanden die je zojuist hebt gemaakt, zullen nu zichtbaar zijn in GitHub Desktop onder het kopje ‘Changes’.

Changes

Zie je geen changes in GitHub Desktop? Controleer of je de juiste map hebt geselecteerd bij het aanmaken van je project of bestand.

Stap 2.1: Vul onderin een ‘summary’ in voor de commit (bijvoorbeeld: Eerste commit). Het is ook mogelijk om een beschrijving toe te voegen. Hierin kun je bijvoorbeeld toelichting geven op de wijzigingen of andere gebruikers taggen.

Stap 2.2: Klik op de knop Commit. De wijzigingen zijn nu lokaal opgeslagen als een momentopname van je project. Deze wijzigingen zijn nog niet online zichtbaar.

Stap 2.3: Klik op de knop Push origin. Door te pushen, stuur je de commit naar de online repository. Nu zijn de wijzigingen ook zichtbaar en toegankelijk voor anderen die toegang hebben tot je repository.

Gelukt!

Je hebt je eerste commit gepusht naar Git.

Opdracht 4: Gitignore

Om te voorkomen dat tijdelijke of door je IDE gegeneerde bestanden niet continu worden toegevoegd aan je commit gaan we een .gitignore bestand toevoegen. Onderaan deze pagina staan de manieren hoe een bestand/folder aan de gitignore toegevoegd kan worden.

Stap 1: Als je bij het aanmaken van je repository geen .gitignore bestand hebt toegevoegd, kun je deze nu handmatig aanmaken. Maak een nieuw tekstbestand aan met de naam .gitignore in de hoofdmap van je project.

Stap 1.1: Voeg de standaard .gitignore regels voor een Visual Studio project toe. Je kunt een voorbeeld .gitignore voor Visual Studio vinden op de .gitignore repository of op Toptal.

Stap 1.2: Kopieer en plak de inhoud van het Visual Studio .gitignore bestand in jouw .gitignore bestand.

Nu we een .gitignore bestand hebben toegevoegd, gaan we de veranderingen commiten.

Stap 2.1: Open GitHub Desktop of je IDE, en kijk bij de Changes sectie. Je ziet dat alle bestanden die door het .gitignore bestand worden uitgesloten, niet meer worden weergegeven.

Stap 2.2: Voeg een commit message toe zoals Add .gitignore to exclude unnecessary files, en klik op Commit to [branch].

Stap 2.3: Druk op de Push origin knop om je veranderingen naar GitHub te uploaden.

Goed gedaan!

  • Het is gelukt om een repository aan te maken!
  • Je hebt changes gecommit en gepusht naar de repository!
  • Je hebt een .gitignore bestand gemaakt!

Alternatieve manier voor het aanmaken van een repository

Via de terminal is het ook mogelijk om eerst lokaal een repository aan te maken en deze te linken aan een repository op GitHub.

Stap 1: Open een terminal en navigeer naar de folder wat een repository moet worden.

cd pad\naar\je\project\folder

Stap 2: Typ het volgende in de terminal:

git init

Stap 3: Maak een repository aan op GitHub met dezelfde naam als de folder naam waar je zojuist de git init commando hebt uitgevoerd.

Stap 4: Link de lokale repository en de repository op GitHub aan elkaar.

git remote add origin https://github.com/username/repository-name.git
  • Vervang de link met de link van de GitHub repository.

Stap 5: Push de bestanden die in je lokale repository staan naar de remote repository (repository op GitHub).

git push -u origin main

Git commando’s voor commits en mergen

Meer commando's

Voor meer commando’s, zie https://git-scm.com/docs

Toevoegen van bestanden aan staging area

Staging area is een benaming voor een tijdelijk opslagplek. Alleen de bestanden in deze staging area zullen meegenomen worden in de commit.

# Voeg 1 bestand toe aan de staging area
git add bestandsnaam.txt

# Voeg alle bestanden uit de huidige folder toe
git add .

Commiten

git commit -m "Titel" -m "Beschrijving"
  • -m: geeft een message aan. Bij het commit commando is de eerste message dus de titel en de tweede de beschrijving.

Pushen en pullen

# Pushen van veranderingen van een branch naar de remove
git push [REMOTE] [BRANCH]

# Pushen van een nieuwe branch
git push -u [REMOTE] [BRANCH]

# Pullen
git pull [REMOTE] [BRANCH]
  • [REMOTE]: Vervang [REMOTE] met de naam van de remote repository, vaak is dit origin
  • [BRANCH]: Vervang [BRANCH] met de naam van de branch.

Stashen

git stash

Tags

git tag [TAG_NAAM]

git tag -a v1.0 -m "Release version 1.0"

# Toevoegen tag aan commit
git tag [TAG_NAAM] [COMMIT_NAAM]

# Pushen van tags
git push origin v1.0

# Pushen van alle tags in 1 keer
git push --tags
  • -a: Naam van de tag
  • -m: Voegt een bericht toe aan de tag
  • Pushen: Tags worden niet automatisch toegevoegd aan de remote repository en moeten dus naar de remote gepusht worden.

Commando’s voor .gitignore

Binnen het bestand wordt per regel aangegeven welke folder/bestand niet moet worden meegenomen.

voorbeeld.txt
  • Hierbij wordt het bestand voorbeeld.txt niet getracked en niet meegenomen in de commit.
#In huidige folder
*.txt

#In alle folders (ook subfolders)
**/*.txt

##Alle bestanden, behalve important.txt
*.txt
!important.txt
  • Git negeert alle bestanden die de extensie .txt
#In huidige folder
temp*

#In alle folders (ook subfolders)
**/temp*
  • Git negeert alle bestanden en folder die beginnen met temp in de huidige folder
#In alle folders
build/

#Alleen in de root folder
/build/

#Alle bestanden in een folder negeren, maar keepme.txt bestand niet (!)
build/
!build/keepme.txt
  • Git negeert de build folder (en de content in de folder).
  • Als je alleen de content van een folder wilt negeren, maar de folder zelf in de repository wilt houden, kun je een uitzondering maken door een speciaal bestand in die map toe te voegen, zoals een .gitkeep bestand.

Volgende stap: 3. Git Forks & Branches