🐙 Als het misgaat
Merge conflicts oplossen, .gitignore en commit conventies — de afronding van de Git-track.
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.
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
<h1>Welkom</h1>
<<<<<<< HEAD
<p>Versie van main: Gratis cursus</p>
=======
<p>Versie van feature: Interactieve cursus</p>
>>>>>>> feature/tekst-update
</body>
Jouw huidige branch (main)
Scheiding tussen de twee versies
De inkomende branch
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.
Conflict oplossen — stap voor stap
git status
# "both modified: index.html" → conflict bestandVerwijder de markeringen (<<<, ===, >>>) en houd de gewenste versie over:
<h1>Welkom</h1>
<p>Gratis interactieve cursus</p> ← jouw keuze
</body>git add index.html
git commit -m "Merge conflict opgelost in index.html"VS Code markeert conflicten visueel en biedt knoppen: "Accept Current", "Accept Incoming", "Accept Both". Handig voor grotere conflicten.
git merge --abort
Gooit de merge terug naar de staat van vóór — als je er even niet uitkomt.
.gitignore — bestanden uitsluiten
Niet alles hoort in je repository. Het .gitignore bestand vertelt Git welke bestanden en mappen het moet negeren.
# 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*
- •
.env— API keys, wachtwoorden - • Database credentials
- • SSL-certificaten
- • Persoonlijke configuratiebestanden
Eenmaal gepusht = voor altijd in de geschiedenis (zelfs na verwijderen).
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 het .gitignore bestand aan als allereerste stap — vóór je eerste commit. Zo hoef je nooit achteraf gevoelige data te verwijderen.
Goede commit messages
Een goede commit message vertelt wat je deed én waarom. Over 6 maanden ben je blij dat je dit deed.
feat: nieuwe functionaliteitfix: bugfixdocs: documentatiestyle: opmaak, geen logicawijzigingrefactor: herstructurering zonder gedragswijzigingchore: build, dependencies, config- feat: voeg zoekfunctie toe aan header
- fix: herstel crash bij lege winkelwagen
- docs: update README met API-sleutel instructies
- update
- WIP
- fix stuff
- aaaaaa
Handige tips & veelgemaakte fouten
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 -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 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 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
git restore bestand.htmlgit restore .git merge --abortgit reset --soft HEAD~1git reflog🧠 Kennischeck
Les 7 afgerond!
Je kent merge conflicts, .gitignore, commit conventies en handige noodcommando's.