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.
