Git-trackLes 7 van 7

🐙 Als het misgaat

Merge conflicts oplossen, .gitignore en commit conventies — de afronding van de Git-track.

⏱ 25 min6 stappen
Stap 1 / 6

Merge conflicts — wat zijn ze?

Een merge conflict treedt op als twee branches dezelfde regels op een andere manier hebben gewijzigd. Git weet dan niet welke versie te bewaren — jij moet dat beslissen.

Conflict melding bij git merge
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Zo ziet een conflict eruit in het bestand
<h1>Welkom</h1>
<<<<<<< HEAD
<p>Versie van main: Gratis cursus</p>
=======
<p>Versie van feature: Interactieve cursus</p>
>>>>>>> feature/tekst-update
</body>
HEAD

Jouw huidige branch (main)

=======

Scheiding tussen de twee versies

feature/...

De inkomende branch

💡 Conflicts zijn normaal

Elke developer krijgt ze. Ze zijn niet gevaarlijk — Git vraagt gewoon om jouw beslissing. Kleine, frequente commits en branches up-to-date houden minimaliseert het aantal conflicts.

Stap 2 / 6

Conflict oplossen — stap voor stap

1
Zie welke bestanden conflicten hebben
git status
# "both modified: index.html" → conflict bestand
2
Open het bestand en los het conflict op

Verwijder de markeringen (<<<, ===, >>>) en houd de gewenste versie over:

<h1>Welkom</h1>
<p>Gratis interactieve cursus</p>   ← jouw keuze
</body>
3
Markeer als opgelost en commit
git add index.html
git commit -m "Merge conflict opgelost in index.html"
VS Code helpt

VS Code markeert conflicten visueel en biedt knoppen: "Accept Current", "Accept Incoming", "Accept Both". Handig voor grotere conflicten.

Merge afbreken
git merge --abort

Gooit de merge terug naar de staat van vóór — als je er even niet uitkomt.

Stap 3 / 6

.gitignore — bestanden uitsluiten

Niet alles hoort in je repository. Het .gitignore bestand vertelt Git welke bestanden en mappen het moet negeren.

Voorbeeld .gitignore voor een webproject
# Omgevingsvariabelen (NOOIT in git!)
.env
.env.local
.env.*.local

# Dependencies (te groot, niet nodig)
node_modules/
vendor/

# Build output
/dist
/build
*.min.js

# Editor bestanden
.vscode/
.idea/
*.swp

# OS bestanden
.DS_Store
Thumbs.db

# Log bestanden
*.log
npm-debug.log*
🔐 Nooit in git
  • .env — API keys, wachtwoorden
  • • Database credentials
  • • SSL-certificaten
  • • Persoonlijke configuratiebestanden

Eenmaal gepusht = voor altijd in de geschiedenis (zelfs na verwijderen).

gitignore.io

Genereer automatisch een .gitignore voor jouw stack via gitignore.io of direct in GitHub bij het aanmaken van een repo.

# Al gecommit maar wil je nu negeren?
git rm --cached bestand.txt
✅ Maak .gitignore als eerste

Maak het .gitignore bestand aan als allereerste stap — vóór je eerste commit. Zo hoef je nooit achteraf gevoelige data te verwijderen.

Stap 4 / 6

Goede commit messages

Een goede commit message vertelt wat je deed én waarom. Over 6 maanden ben je blij dat je dit deed.

Conventional Commits — de industrie-standaard
feat: nieuwe functionaliteit
feat: voeg winkelwagen toe aan productpagina
fix: bugfix
fix: herstel onjuiste btw-berekening
docs: documentatie
docs: voeg installatie-instructies toe aan README
style: opmaak, geen logicawijziging
style: herstel inspringing in header.css
refactor: herstructurering zonder gedragswijziging
chore: build, dependencies, config
✅ Goed
  • feat: voeg zoekfunctie toe aan header
  • fix: herstel crash bij lege winkelwagen
  • docs: update README met API-sleutel instructies
❌ Slecht
  • update
  • WIP
  • fix stuff
  • aaaaaa
Stap 5 / 6

Handige tips & veelgemaakte fouten

git stash — werk tijdelijk opzijzetten
git stash           # zet huidige wijzigingen opzij
git checkout main   # wissel branch
git stash pop       # haal wijzigingen terug

Handig als je snel moet wisselen maar nog niet wilt committen.

git commit --amend — laatste commit corrigeren
git commit --amend -m "Gecorrigeerde commit message"
# Of: voeg vergeten bestand toe aan laatste commit
git add vergeten.html
git commit --amend --no-edit

Alleen op commits die je nog niet gepusht hebt!

git cherry-pick — één commit overnemen
git cherry-pick a3f9b21   # neem deze ene commit over

Handig als je één specifieke fix van een andere branch wilt hebben zonder de hele branch te mergen.

git bisect — vind de commit die iets brak
git bisect start
git bisect bad           # huidige commit is kapot
git bisect good v1.0     # deze versie werkte nog
# Git test halverwege — zeg good/bad tot de commit gevonden is
🚨 Noodgeval — "ik heb iets verprutst"
Gewijzigd bestand herstellen: git restore bestand.html
Alles ongedaan (werkmap): git restore .
Merge afbreken: git merge --abort
Laatste commit ongedaan: git reset --soft HEAD~1
Verwijderde commit terugvinden: git reflog

🧠 Kennischeck

🐙

Les 7 afgerond!

Je kent merge conflicts, .gitignore, commit conventies en handige noodcommando's.