Git

Versiebeheer (Git), DVCS, Distributed Version Control System, Git VCS, Git repository, Git repo, Git versiebeheer, Source control, GitHub (platform), GitLab (platform), Bitbucket (platform)
Git is een gedistribueerd versiebeheersysteem voor code en bestanden. Het maakt samenwerken, branching en traceerbare releases mogelijk.

Wat is Git?

Git is een gedistribueerd versiebeheersysteem (DVCS) waarmee je wijzigingen in code en andere bestanden kunt bijhouden, samenwerken met teams en releases beheersen. In tegenstelling tot centrale systemen heeft elke ontwikkelaar een volledige kopie van de repository inclusief geschiedenis, waardoor werken offline, snelle bewerkingen en robuuste workflows mogelijk zijn.

Belangrijke concepten

  • Repository (repo): De opslagplaats met alle bestanden en hun geschiedenis.
  • Commit: Een snapshot van wijzigingen, geïdentificeerd door een SHA-hash en voorzien van een bericht.
  • Branch: Een aparte lijn van ontwikkeling om features, fixes of experimenten te isoleren.
  • Merge & Rebase: Methoden om wijzigingen van de ene branch in de andere te integreren.
  • Staging area (index): Tussenlaag waarin je selecteert welke wijzigingen in de volgende commit gaan.
  • Remote: Een externe repository (bijv. op GitHub, GitLab of Bitbucket) om samen te werken en te delen.

Veelgebruikte commando's

  • git init / git clone: Start een nieuwe repo of kopieer een bestaande.
  • git status, git add, git commit: Werkstroom voor wijzigingen vastleggen.
  • git branch, git switch / git checkout: Branches beheren en wisselen.
  • git pull, git fetch, git push: Synchroniseren met remotes.
  • git merge, git rebase: Integreren van wijzigingen.
  • git stash, git tag, git log, git diff: Werk parkeren, versies markeren en geschiedenis vergelijken.

Workflows en integraties

  • Branching-strategieën: Van formele Git Flow (met feature-, release- en hotfix-branches) tot trunk-based development met korte-lived branches en frequente merges.
  • Code review: Pull/Merge Requests op hostingplatforms ondersteunen reviews, discussies en automatische checks.
  • CI/CD: Git-triggers starten pipelines voor testen, builden en deployen.
  • Releases & tagging: Versies markeren (bijv. semantisch) en changelogs genereren.
  • Security & governance: Beschermde branches, required reviews, gesigneerde commits en audit trails.
  • Grote bestanden: Gebruik Git LFS (Large File Storage) voor media of binaire assets.

Toepassingen

Git wordt breed ingezet in softwareontwikkeling en daarbuiten om samenwerking te stroomlijnen, kwaliteit te borgen en releases voorspelbaar te maken.

Gebruiksscenario's

  • Teamsamenwerking: Parallel ontwikkelen via feature branches en gecontroleerde merges.
  • Open-source: Forks, pull requests en community review-processen.
  • Release management: Stable/main-branches, release-tags en hotfix-branches voor snelle correcties.
  • Infrastructure as Code: Versiebeheer voor infrastructuurscripts (bijv. Terraform, Ansible) en configuraties.
  • Data & research: Versiebeheer van notebooks, documentatie en experimenten; met LFS voor datasets.
  • CI/CD-automatisering: Commits en tags activeren build-, test- en deploy-pipelines.
  • Kennisborging: Herleidbare geschiedenis, blame/annotate voor verantwoordelijkheid en audit.

Best practices

  • Kleine, betekenisvolle commits met duidelijke commit messages (bijv. volgens Conventional Commits).
  • .gitignore voor tijdelijke en geheime bestanden; geen secrets in de repo.
  • Heldere branching-strategie en beschermde branches met verplichte reviews en checks.
  • Tags en semantische versies voor reproduceerbare builds en release-notes.
  • Automatische quality gates (lint, tests, security scans) in CI.
  • Commit signing (GPG/SSH) en toegangsbeheer (least privilege).
  • Geschiedenis opschonen (bijv. git rebase -i) waar gepast; vermijd force-push op gedeelde branches.

Tooling

  • CLI: Standaard Git-client.
  • GUI-clients: Sourcetree, GitKraken, Tower.
  • IDE-integraties: VS Code, JetBrains, Visual Studio, Xcode.
  • Hosting: GitHub, GitLab, Bitbucket met issues, wikis, CI/CD en pakketten.

Veelgestelde vragen

Git is de open-source tool voor versiebeheer op je machine en op servers. GitHub, GitLab en Bitbucket zijn hostingplatforms die Git-repositories bewaren en uitbreiden met functies zoals pull/merge requests, issue tracking, CI/CD, rechtenbeheer en documentatie. Je kunt Git ook zonder zo'n platform gebruiken (bijv. via een eigen remote of lokaal).

Een merge conflict ontstaat wanneer Git wijzigingen niet automatisch kan samenvoegen.

  • Voer git status uit om conflicterende bestanden te zien.
  • Open de bestanden en kies handmatig de juiste combinatie van wijzigingen.
  • Verwijder conflictmarkeringen (<<<<<<>>>>>>), test lokaal en voeg op (git add) de opgeloste bestanden.
  • Rond af met git commit (bij merge) of git rebase --continue (bij rebase).
  • Tip: gebruik een merge-tool (bijv. in je IDE) en voorkom grote, langlopende branches om conflicten te beperken.

Git Flow is geschikt voor releases met vaste cycli en streng scheiden van ontwikkel-, release- en hotfix-branches. Trunk-based development stimuleert korte-lived feature branches, snelle integratie in main en sterke CI-automatisering, ideaal voor frequente deploys. Kies op basis van releasefrequentie, teamgrootte, compliance-eisen en automatiseringsniveau. Veel teams combineren elementen (bijv. trunk-based met release branches bij grotere releases).

Auteur & updates

Auteur: Wouter
Publicatiedatum: 29-01-2026
Laatste update: 29-01-2026