GitHub — is het grootste webplatform voor het hosten van Git-repositories, gezamenlijke ontwikkeling en procesautomatisering, eigendom van Microsoft. Het biedt niet alleen opslag van code met versiebeheer, maar ook een volledige set tools voor projectbeheer: Issue Tracking, Pull Request met code-review, Actions voor CI/CD en Wiki voor documentatie. Volgens gegevens van GitHub, 2024, telt het platform meer dan 100 miljoen ontwikkelaars en 420 miljoen repositories.
Belangrijkste punten
GitHub — is een webservice voor het opslaan en gezamenlijk werken aan Git-repositories, opgericht in 2008 door Tom Preston-Werner, Chris Wanstrath en P.J. Hyett. In 2018 werd het bedrijf overgenomen door Microsoft voor 7,5 miljard dollar. Het platform biedt een webinterface voor alle Git-bewerkingen en voegt daar sociale functies aan toe: forks, sterren, abonnementen, code-review en een ingebouwd systeem voor continue integratie.
Het belangrijkste verschil van GitHub met concurrenten — het open ecosysteem en de grootste gemeenschap van ontwikkelaars. Op GitHub vindt men de broncodes van Android, Kubernetes, React, Swift, Kotlin en duizenden andere open-source projecten. Dit maakt het platform niet alleen een tool voor codeopslag, maar ook een sociaal netwerk voor ontwikkelaars: men kan projecten volgen, wijzigingen bespreken en bijdragen leveren via pull request.
Volgens het rapport van Microsoft (2024) passeren dagelijks meer dan 10 miljoen nieuwe Pull Requests op GitHub en het aantal maandelijkse actieve gebruikers heeft de 100 miljoen overschreden. Het platform ondersteunt meer dan 500 programmeertalen, automatische taaldetectie op basis van bestandsextensies en syntaxishighlighting.
De functionaliteit van GitHub gaat ver verder dan eenvoudig Git-hosting. Het platform biedt: GitHub Actions — ingebouwd CI/CD-systeem; GitHub Packages — register voor pakketten en containers; GitHub Codespaces — cloud-gebaseerde ontwikkelomgevingen op basis van VS Code; GitHub Discussions — forum voor de gemeenschap; GitHub Security — Dependabot voor automatische update van afhankelijkheden en kwetsbaarheidsscanning; GitHub Copilot — AI-assistent voor het schrijven van code.
Voor organisaties biedt GitHub GitHub Enterprise — de zakelijke versie met eigen hosting (GitHub Enterprise Server) of cloud-implementatie (GitHub Enterprise Cloud). Zakelijke functies omvatten SAML/SSO-authenticatie, activiteitsaudit, beveiligingsbeleid voor repositories en SLA van 99,95% beschikbaarheid. De Enterprise-versie wordt gebruikt door bedrijven zoals Google, Apple en Airbnb.
Een belangrijke eigenschap van GitHub — GitHub CLI (gh), waarmee alle platformbewerkingen vanaf de commandoregel kunnen worden uitgevoerd zonder de webinterface. Met gh kunnen repositories worden aangemaakt, Issues worden beheerd, Pull Requests worden bekeken en Actions worden gestart rechtstreeks vanaf de terminal, wat het werk versnelt van ontwikkelaars die gewend zijn aan de commandoregel.
| Functie | Doel | Beschikbaarheid |
|---|---|---|
| Actions | CI/CD en automatisering | Gratis 2000 min/maand |
| Codespaces | Cloud-IDE op basis van VS Code | Betaald, 60 u/maand gratis |
| Packages | Hosting van pakketten en Docker-images | Gratis 500 MB |
| Dependabot | Automatische update van afhankelijkheden | Gratis voor openbare repositories |
| Pages | Hosting van statische sites | Gratis |
Pull Request (PR) — is het belangrijkste mechanisme voor het doorvoeren van wijzigingen in een project op GitHub. Een ontwikkelaar maakt een branch met wijzigingen, publiceert deze op GitHub en stuurt een verzoek tot samenvoegen (Pull Request) naar de hoofdbranch. Andere deelnemers aan het project zien het verschil (diff) tussen branches, kunnen opmerkingen plaatsen bij specifieke regels code, wijzigingen voorstellen en het verzoek goedkeuren of afwijzen.
Het code-reviewproces op GitHub is rond de PR gebouwd. Elke opmerking wordt gekoppeld aan een specifieke diff-regel en kan van drie typen zijn: Comment (gewone opmerking), Request Changes (vereist correcties) en Approve (goedkeuring). Na het doorvoeren van wijzigingen werkt de auteur de PR bij met een nieuwe commit en wordt het reviewproces herhaald. Wanneer alle opmerkingen zijn opgelost en de PR is goedgekeurd, worden de wijzigingen samengevoegd in de doelbranch.
# Feature-branch aanmaken en pushen
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# PR aanmaken via CLI
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# PR bekijken en mergen
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub ondersteunt branchbeveiliging (branch protection rules): men kan directe push naar main verbieden, een verplicht aantal goedkeuringen voor merge eisen, Actions-controles uitvoeren en actualiteit van de branch voor samenvoegen vereisen. Branchbeveiliging wordt geconfigureerd in Settings → Branches en is een verplichte praktijk voor productieprojecten, die voorkomt dat onstablele code per ongeluk in de hoofdbranch terechtkomt.
GitHub Actions — is een ingebouwd CI/CD-platform dat automatisering van werkstromen direct in de repository mogelijk maakt. Een workflow wordt beschreven in YAML-bestanden, opgeslagen in de map .github/workflows/. Elke workflow bestaat uit een of meer jobs, die worden uitgevoerd op runners — virtuele machines met Linux, Windows of macOS.
Actions ondersteunt een gebeurtenisgestuurd model: een workflow wordt gestart bij push, aanmaken van PR, publicatie van een release, volgens een schema of via webhook. Dit maakt automatisering mogelijk van bouwen, testen uitvoeren, statische codeanalyse, publicatie in app-winkels en implementatie op de server zonder tussenkomst van de ontwikkelaar. Hieronder staat een voorbeeld van een workflow voor een Android-project:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Het Actions-ecosysteem omvat meer dan 20.000 kant-en-klare acties in GitHub Marketplace. Populaire acties: checkout (klonen van repository), setup-java/setup-node/setup-python (configuratie van omgeving), upload-artifact (opslaan van build-artefacten), cache (caching van afhankelijkheden voor snelheid), slack-notify (verzenden van meldingen naar Slack). Actions ondersteunt ook matrix-builds — gelijktijdig uitvoeren op meerdere versies van besturingssystemen of talen.
Issues — is een ingebouwd systeem voor het volgen van taken op GitHub. Elk Issue heeft een titel, beschrijving, labels, toegewezen uitvoerders (assignees), mijlpalen (milestones) en gerelateerde Pull Requests. Issues kunnen worden gesjabloneerd — voor bugrapporten, functieaanvragen of vragen worden verschillende sjablonen gebruikt die automatisch worden ingevuld bij het aanmaken.
GitHub Projects (voorheen Projects Beta) — is een tool voor projectbeheer op basis van borden, vergelijkbaar met Jira en Trello. Projects ondersteunt aangepaste velden (status, prioriteit, sprint), koppeling met Issues en Pull Requests, automatisering van kaartverplaatsing bij wijziging van taakstatus en analyses in de vorm van een burndown chart. Projects is beschikbaar in twee modi: Table (tabelweergave) en Board (kanban-bord).
Voor releasebeheer biedt GitHub Milestones — groepen Issues en PRs, verenigd door een gemeenschappelijk doel met een deadline. Elke mijlpaal toont de voortgang: hoeveel taken open zijn, hoeveel gesloten en of de deadline wordt gehaald. Milestones integreren met Releases — bij het publiceren van een release kan deze aan een mijlpaal worden gekoppeld en automatisch een lijst met wijzigingen in CHANGELOG worden gegenereerd op basis van gesloten Issues.
GitHub Pages — is gratis hosting voor statische sites, die automatisch de inhoud van de repository publiceert op het adres https://username.github.io/repository. Pages ondersteunt HTML, CSS, JavaScript en statische generatoren: Jekyll (ingebouwd), Hugo, Next.js (export) en MkDocs. Configuratie omvat de keuze van branch en map voor publicatie, evenals ondersteuning voor een aangepast domein.
Voor technische documentatie biedt GitHub Wiki — een ingebouwd wiki-systeem, dat ook wordt opgeslagen als een Git-repository. Wiki ondersteunt Markdown en maakt het mogelijk pagina's te bewerken via de webinterface en lokaal via push naar de wiki-repository. Elke wiki-pagina heeft een eigen wijzigingsgeschiedenis, wat handig is voor het documenteren van API, architectuur en projectprocessen.
De combinatie GitHub Pages + Jekyll — een populaire oplossing voor documentatiesites. Jekyll converteert automatisch Markdown-bestanden naar statische HTML-pagina's, ondersteunt thema's, navigatie en zoeken. Zo gebruikte de documentatie van Android Developers voorheen Jekyll op GitHub Pages en nu — een intern platform, maar duizenden open-source projecten blijven deze combinatie gebruiken voor hun sites.
GitHub CLI (gh) maakt het mogelijk alle bewerkingen op het platform uit te voeren via de commandoregel: repositories aanmaken, Issues beheren, Pull Requests bekijken en goedkeuren, Actions starten. Het commando gh repo create my-project --public maakt een externe repository en koppelt deze aan de lokale, en gh pr create maakt een Pull Request van de huidige branch. CLI versnelt het werk van ontwikkelaars die de terminal verkiezen boven de webinterface.
GitHub REST API en GraphQL API bieden programmatische toegang tot alle functies van het platform: Issues aanmaken, gebruikers beheren, statistieken ophalen en Actions beheren. GraphQL API heeft de voorkeur voor complexe queries, omdat het mogelijk maakt alleen de benodigde velden in één query op te halen. Rate limit voor REST API — 5000 queries per uur voor geverifieerde gebruikers. De API wordt veel gebruikt voor integratie van GitHub met externe CI-systemen en interne DevOps-tools.
GitHub Gist — een dienst voor het publiceren van codefragmenten zonder een volledige repository aan te maken. Gist ondersteunt syntaxishighlighting, inbedding op externe sites en versiegeschiedenis. Elke Gist kan openbaar (zichtbaar in zoekopdrachten) of geheim (alleen toegankelijk via link) zijn. Gist wordt gebruikt voor het snel delen van configuraties, logs en codevoorbeelden in teamcommunicatie, en ook als een analoog van Pastebin voor ontwikkelaars.
Veelgestelde vragen
GitHub legt de nadruk op een open gemeenschap en sociale functies (forks, sterren). GitLab biedt krachtigere ingebouwde CI/CD en eigen hosting (Self-Managed) zonder beperkingen aan Actions-minuten.
GitHub Team kost $4 per gebruiker per maand en biedt onbeperkte privé-repositories, branchbeveiliging en Actions (3000 minuten). Het gratis tarief is geschikt voor kleine open-source projecten.
Kies bij het aanmaken van een repository Private in plaats van Public. In privé-repositories is code alleen zichtbaar voor uitgenodigde deelnemers. Op het gratis tarief zijn privé-repositories beschikbaar met een limiet van 3 samenwerkers.
GitHub Copilot — een AI-assistent op basis van OpenAI Codex, die realtime code-aanvulling biedt. Werkt in VS Code, JetBrains en Neovim, ondersteunt alle populaire programmeertalen.
Ga naar Settings → Danger Zone → Delete this repository. Verwijderen is onomkeerbaar — alle commits, Issues en Wiki worden verwijderd zonder mogelijkheid van herstel. Zorg ervoor dat u vooraf een back-up heeft.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook