Git commands: praktische gids voor developers
Tips 'n tricks over het web, digital trends, en online marketing
Git commands, de ruggengraat van moderne softwareontwikkeling
Bij Funkhaus bouwen we dagelijks aan websites, webapps en slimme marketingflows. Daarin vertrouwen we op Git om ons werk veilig vast te leggen, soepel samen te werken en zonder risico terug te keren naar een vorige versie wanneer dat nodig is.
In dit kennisbankartikel nemen we je mee in wat Git precies is, waarvoor je het gebruikt en waarom het zo belangrijk is in onze manier van werken. Daarna delen we een uitgebreide lijst met handige Git commands, inclusief voorbeelden en tips die wij zelf toepassen in onze projecten.
Wat is Git?
Git is een gedistribueerd versiebeheersysteem: elke ontwikkelaar beschikt lokaal over de volledige codegeschiedenis. Dat maakt operaties zoals commits, diff en branchebeheer extreem snel en betrouwbaar. In plaats van één centrale bron bewaar je lokale snapshots (commits) die je later naar een remote zoals GitHub, GitLab of Bitbucket kunt pushen. Voor een volledige referentie kun je terecht bij de officiële documentatie van Git en het gratis boek Pro Git.
Waarom gebruik je Git en waarom is het belangrijk?
Git maakt samenwerken voorspelbaar: meerdere mensen kunnen tegelijk aan features werken in gescheiden branches zonder elkaars werk te overschrijven. Elke commit bevat wie iets heeft veranderd en waarom, wat belangrijk is voor traceerbaarheid en debugging. Git ondersteunt workflows met code reviews, CI/CD-pipelines en rollback-mogelijkheden, zodat fouten snel opgespoord en hersteld worden. Integratie met tools zoals GitHub Actions en GitLab CI helpt om kwaliteit te automatiseren tijdens elke push. Zie bijvoorbeeld de GitHub Actions-documentatie voor voorbeelden van CI-workflows: https://docs.github.com/actions
Kernconcepten in één zin
- Repository: de projectmap met de .git directory
- Commit: een snapshot van je code inclusief metadata
- Branch: een verwijzing naar een reeks commits
- Remote: een externe repository (bv. origin)
- Staging area (index): tussenlaag tussen working tree en commit
Handige git-commands en wat ze doen
Onderstaand vind je een uitgewerkte lijst met commands die in de praktijk het meest nuttig zijn. Voor elk command leg ik uit wat het doet, wanneer je het gebruikt en geef ik een voorbeeld.
git init
Initialiseert een nieuwe Git-repository in de huidige map. Gebruik dit als je een project lokaal wilt beginnen met versiebeheer.
Tip: Voeg meteen een .gitignore toe met bestanden die niet onder versiebeheer moeten (build-artifacts, credentials, node_modules).
git clone
Maakt een lokale kopie van een remote repository. Hiermee haal je de volledige geschiedenis binnen.
git clone https://github.com/organisatie/project.git
Tip: Gebruik –depth voor een shallow clone als je alleen de laatste geschiedenis nodig hebt.
git status
Toont welke bestanden gewijzigd zijn, welke staged staan en welke ontracked zijn. Dit is vaak het eerste commando dat je uitvoert.
git add
Plaats wijzigingen in de staging area zodat ze onderdeel worden van de volgende commit. Je kunt individuele bestanden of alles toevoegen.
git add index.html
git add -A # alle wijzigingen
Tip: Gebruik kleine, logische commits door telkens gerelateerde wijzigingen te adden en te committen.
git commit
Maak een snapshot van gestage wijzigingen. Schrijf duidelijke commit messages.
git commit -m “fix: responsive header en accessibility improvements”
Tip: Hanteer conventies zoals Conventional Commits voor consistente messages: https://www.conventionalcommits.org
git log
Toont de commitgeschiedenis. Handige flags: –oneline –graph –decorate –all voor een compacte weergave.
git log –oneline –graph –decorate –all
git diff
Vergelijk wijzigingen tussen working tree, index en commits.
git diff # unstaged changes
git diff –staged # staged changes
git diff HEAD~1..HEAD
Tip: Gebruik dit om te controleren wat je gaat committen.
git show
Toont de inhoud en metadata van een specifieke commit of ref.
git show 7f3a2b1
git branch
Toont of maakt branches. -a laat ook remotes zien.
git branch # lijst lokaal
git branch -a # lijst inclusief remote branches
git branch feature/zoekfunctie
git switch / git checkout
git switch is de modernere manier om tussen branches te wisselen (git checkout kan ook nog).
git switch feature/zoekfunctie
git switch -c feature/nieuw
git merge
Voeg een andere branch samen in je huidige branch. Je kunt een fast-forward of een merge commit krijgen.
git switch main
git merge feature/zoekfunctie
Tip: Controleer altijd na een merge de tests en los conflicten op.
git rebase
Verplaats je commits op een nieuwe basis; dit geeft een lineaire geschiedenis. Gebruik rebase lokaal en vóór je naar remote pusht om historie schoon te houden.
git switch feature/zoekfunctie
git rebase main
Let op: rebase herschrijft geschiedenis — doe dit niet op gedeelde branches zonder overleg.
Lees meer over merge vs rebase: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
git fetch / git pull / git push
fetch haalt refs op zonder te mergen. pull is fetch + merge (of –rebase). push duwt je commits naar remote.
git fetch origin
git pull –rebase origin main
git push origin feature/zoekfunctie
Tip: Gebruik git pull –rebase als je een nette geschiedenis wilt.
git stash
Sla tijdelijke, niet-gecommitte wijzigingen op en maak je working tree schoon. Handig als je snel van context moet wisselen.
git stash
git stash list
git stash pop
git restore
Herstel bestanden uit commit of verwijder ze uit de staging area. Dit is de modernere vervanger voor bepaalde checkout-operaties.
git restore README.md # herstelt working tree
git restore –staged README.md # verwijdert uit staging
git reset
Verplaats HEAD en eventueel index/working tree. –soft, –mixed, –hard hebben verschillende impact. Gebruik met voorzichtigheid.
git reset –soft HEAD~1
git reset –hard HEAD~1 # destructief
git cherry-pick
Breng een specifieke commit over naar je huidige branch. Handig voor hotfixes.
git cherry-pick 3a4b5c6
git clean
Verwijder ongeversioneerde bestanden. Let op: irreversibel zonder back-up.
git clean -fd
git mv / git rm
Verplaats of verwijder bestanden met behoud van geschiedenis.
git mv oudeNaam.php nieuweNaam.php
git rm ongewenst.txt
Best practices en workflows
- Maak kleine, logische commits met duidelijke messages. Beschrijf het waarom, niet alleen het wat.
- Bewaar gevoelige gegevens nooit in de repo; gebruik environment variabelen en secrets in je CI-platform.
- Kies een branching-strategie die bij je team past: GitHub Flow is simpel voor continue deploys; GitLab Flow helpt met meerdere omgevingen. Zie workflows: https://www.atlassian.com/git/tutorials/comparing-workflows
- Gebruik git rebase lokaal om je featurebranch up-to-date te houden, maar gebruik git revert op gedeelde branches om veilig wijzigingen terug te draaien.
Slotwoorden en bronnen
Met deze commands en uitleg heb je een solide basis om efficiënt met Git te werken. Git biedt veel diepgang – van eenvoudige commits tot geavanceerde rebase- en bisect-workflows – maar door de kernconcepten te begrijpen en bovenstaande commands te oefenen raak je snel productiever.
Aanbevolen leestips en referenties:
- Officiële Git-documentatie: https://git-scm.com/docs
- Pro Git (gratis online boek): https://git-scm.com/book/en/v2
- Merging vs rebase (Atlassian): https://www.atlassian.com/git/tutorials/merging-vs-rebasing
- GitHub Actions (CI/CD): https://docs.github.com/actions
- GitLab CI/CD: https://docs.gitlab.com/ee/ci/
👉 Heb je een leuk software idee?
Blijf er niet mee rondlopen! Vertel ons wat je zoekt.
Wij vertellen je direct wat het kost, hoe lang het duurt en hoe we het aanpakken. Duidelijk en zonder kleine lettertjes.
👋 Vrijblijvende even kennismaken?
Stuur een mailtje, of plan meteen een afspraak!
Onze partners aan het woord
Nick Van der Hallen
Fantastisch en eerlijk bedrijf met een zéér flexibele en snelle klantenservice. Funkhaus bracht onze nieuwe website naar the next level, met nog tal van mogelijkheden om later verder uit te bouwen. Superfijn om mee samen te werken en een échte aanrader!
Johnny Spies
Een conflict in de woocommerce shop van onze vereniging zorgde ervoor dat er geen betalingen werden verwerkt. Wout van Funkhaus heeft met ons meegekeken en wist het probleem te achterhalen.
Goede partij die snel en professioneel werkt en erg goed contact houd!
Kine De Staerke
Zeer aangename, professionele samenwerking met Wout en Marnix van Funkhaus. De onepager die ze voor me hebben ontwikkeld is een meerwaarde t.o.v. mijn oude website. Ik kan hun zeker aanraden!
Yassine Vansant
Wout en collega’s hebben me geholpen bij het bouwen en professionaliseren van onze website. Enkele online contacten waar hij concreet vroeg naar feedback en wat net voor mij als klant belangrijk was zorgde ervoor dat mijn website een mooie upgrade kreeg!
Bedankt Wout en team Funkhaus!
Daisy Lens
Wout en zijn team leveren fantastisch werk af en zijn steeds behulpzaam. Ook wanneer er eens iets fout loopt, zijn ze super snel om alles op te lossen. Heel fijn om met hen samen te werken. Highly recommend!
Tibor R. B. Bassez
Wij zijn al jaren tevreden klant van Wout en zijn team. Naast de wekelijkse actualisatie van onze website, houdt hij ook de vinger aan de pols voor de laatste ontwikkelingen in ICT-land.
Chayenne Van Den Eynden
Heel tevreden van de service , altijd goed in orde
Kris Vantilt
Altijd goede service en snel geholpen
Pauline Michgelsen
Funkhaus heeft onze website fantastisch aangepast, en met engelengeduld alle wijzigingen doorgevoerd. Echt een heel prettige samenwerking, kan het iedereen aanraden!
Yasmine D’hanis
Bedankt Funkhaus voor de heldere blik op mijn website (www.minro-legal.be) ! Dank zij jullie duidelijke en concrete tips heb ik de website al een pak gebruiksvriendelijker kunnen maken. Ook heb ik dankzij jullie fouten kunnen wegwerken die tot nu toe onopgemerkt bleven.
Dankjewel! Zeker een aanrader!