Last chance! 50% off DataCamp Premium
Sale ends in
Als je aan een complex Git-project werkt, is het makkelijk om het overzicht te verliezen over welke bestanden zijn gewijzigd, gestaged of nog ongetraceerd zijn. Daar komt git status om de hoek kijken. Deze essentiële Git-opdracht geeft een helder en compleet snapshot van de huidige staat van een repository—met de nadruk op welke bestanden zijn veranderd, wat klaarstaat om te committen en wat nog aandacht nodig heeft.
Of je nu mergeconflicten oplost, gestagede wijzigingen bekijkt of zeker wilt weten dat je niets vergeet voordat je commit, git status geeft je het overzicht om georganiseerd te blijven.
In deze gids leg ik elke sectie van de git status-output uit en bespreek ik geavanceerde aanpassingen, zodat je meer grip krijgt op je versiebeheer-workflow.
De opdracht git status geeft een realtime samenvatting van de staat van je Git-repository. Concreet vergelijkt het de werkdirectory (je lokale bestanden) en de staging area (ook wel de index) met de laatst gecommit snapshot. Zo zie je welke bestanden zijn aangepast, welke wijzigingen zijn gestaged en klaar om te committen, en welke nieuwe bestanden nog ongetraceerd zijn.
Door git status uit te voeren, kunnen ontwikkelaars controleren of de juiste wijzigingen worden gestaged of gecommit, over het hoofd geziene aanpassingen opvangen en voorkomen dat onvolledige updates worden geïntroduceerd. Dit is vooral waardevol bij het beheren van meerdere branches of het oplossen van mergeconflicten, omdat het precies aangeeft wat Git wel en niet bijhoudt.
Begrijpen hoe git status de interactie weerspiegelt tussen de working tree, staging area en repositorygeschiedenis is cruciaal om Git effectief te gebruiken en veelgemaakte fouten te vermijden.

Het bovenstaande diagram laat de relatie zien tussen de werkdirectory, staging area en repository (commitgeschiedenis)—en hoe git status daarin past:
git add) verschijnen als "Changes to be committed".git status je ook over conflicten en welke stappen je vervolgens moet nemen.Voorbeeldoutput van git status:
$ git status
On branch feature/login
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: src/auth.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/utils.js
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/new-feature.js
Voor een breder begrip van Git en de rol ervan in versie-beheer, bekijk deze complete gids over Git.
Hier is een stapsgewijze aanpak om git status effectief in je workflow te benutten.
Heb je Git nog niet geconfigureerd? Deze set-upgids loodst je door installatie en initiële configuratie op verschillende systemen.
Gebruik je favoriete terminal of command-line interface. Zo kun je direct Git-opdrachten uitvoeren en in realtime de staat van je repository bekijken.
Gebruik het commando cd om naar de map te gaan waar je Git-project staat.
cd /path/to/your/project
git status uit:Voer het volgende commando uit zodra je in je projectdirectory bent.
git status
Zoals we eerder zagen, geeft Git een output terug die doorgaans het volgende bevat:
Heb je snel een snapshot nodig zonder extra details, dan is de korte weergave ideaal:
git status --short
Deze beknopte weergave toont elk bestand op één regel met statussymbolen. Handig wanneer je op een specifieke wijziging wilt scannen of dit commando in een script integreert.
Voorbeeldoutput:
M index.html
A new-script.js
?? temp.txt
De output interpreteren:
|
Code |
Betekenis |
|
M |
Gewijzigd |
|
A |
Toegevoegd |
|
D |
Verwijderd |
|
?? |
Ongetraceerd bestand |
|
MM |
In beide stadia gewijzigd |
|
AM |
Toegevoegd en daarna gewijzigd |
Met de optie -u (afkorting van --untracked-files) bepaal je hoe ongetraceerde bestanden in je output worden weergegeven, wat relevant kan zijn in projecten met veel gegenereerde bestanden. Dit betekenen de modi:
normal (de standaard)Toont ongetraceerde bestanden in een standaard, ruimte-efficiënte weergave.
Voorbeeld:
git status -u normal
Dit is het standaardgedrag dat de meeste ontwikkelaars zien bij het uitvoeren van git status.
allSomt elk ongetraceerd bestand op—zelfs die standaard genegeerd worden.
Voorbeeld:
git status -u all
Deze modus geeft volledige zichtbaarheid, wat nuttig kan zijn bij het debuggen van bestandsgeneratie of het beoordelen wat via .gitignore wordt uitgesloten.
noVerbergt ongetraceerde bestanden, zodat je je uitsluitend kunt richten op wijzigingen in bestanden die al door Git worden gevolgd.
Voorbeeld:
git status -u no
In een van mijn grotere projecten—een Node.js-toepassing met een complex buildproces—raakte de output van git status vervuild met tijdelijke bestanden, caches en buildartefacten. Met de optie -u no kon ik me uitsluitend richten op wijzigingen in getraceerde bestanden, zonder afleiding door tijdelijke of automatisch gegenereerde bestanden.
Voor scripting of automatisering is voorspelbare output essentieel. De optie --porcelain levert een schone, stabiele, machineleesbare weergave van git status, ideaal voor gebruik in maatwerktools of CI/CD-workflows:
git status --porcelain
Deze modus lijkt op de korte weergave (--short), maar garandeert consistente output tussen Git-versies en -configuraties. In tegenstelling tot de standaard git status, die afhankelijk van gebruikersinstellingen extra regeleinden, hints of kleur kan bevatten, stript --porcelain al die opmaak weg—zodat scripts de output betrouwbaar kunnen parsen.
Na het uitvoeren van git status en het analyseren van de output, is het tijd om je volgende stap te bepalen—of dat nu het stagen van bestanden is, het committen van updates of het opschonen van je werkdirectory. Zo pak je dat aan.
Met stagen bereid je wijzigingen voor om ze in de volgende commit op te nemen. Je kunt losse bestanden stagen of alles in één keer.
Gebruik dit wanneer je precies wilt bepalen wat gecommit wordt.
git add <file-name>
Dit omvat gewijzigde en nieuw toegevoegde bestanden in de huidige map.
git add .
git add -u
Ik raad aan om de wijzigingen met git status of git diff zorgvuldig te bekijken voordat je staged, zodat je niet per ongeluk ongewenste bestanden meeneemt. In combinatie met het git diff-commando krijg je nog diepere inzichten in wat er in je bestanden is veranderd.
Na het stagen van je wijzigingen is de volgende stap een commit maken. Een duidelijke en beschrijvende commitboodschap legt niet alleen vast wat er is veranderd, maar ook waarom de wijziging is doorgevoerd—wat het makkelijker maakt om de projectgeschiedenis in de tijd te begrijpen.
git commit -m "Describe your changes here"
Best practices voor commitboodschappen:
git commit zonder -m) om de samenvatting en een uitgebreide uitleg te scheiden.Ik heb gemerkt dat een minuut extra om een zinvolle commitboodschap te schrijven later uren kan schelen tijdens reviews of debuggen. Zodra je wijzigingen zijn gereviewd, kun je overwegen commits te squashen om je Git-geschiedenis op te schonen.
Ongetraceerde bestanden kunnen je git status-output vervuilen, vooral in projecten met buildartefacten, logs of dependency-mappen. Als er bestanden of mappen zijn die je nooit wilt tracken, kun je ze uitsluiten door patronen toe te voegen aan een .gitignore-bestand in de root van je repository.
# Ignore dependency folders and log files
node_modules/
*.log
# Ignore system files
.DS_Store
Thumbs.db
Zo zorg je dat alleen relevante bestanden in je repository staan en blijft de output van git status schoon en gefocust. Wanneer je achtergebleven ongetraceerde bestanden uit je werkdirectory wilt verwijderen, is git clean ook een handig hulpmiddel.
git status vaak uitvoeren is een simpele maar krachtige gewoonte die helpt een schone en gecontroleerde ontwikkelworkflow te behouden. Je voorkomt veelgemaakte fouten zoals onvolledige wijzigingen committen of ongetraceerde bestanden over het hoofd zien door de status van je werkdirectory en staging area regelmatig te controleren—zeker vóór commits, branchwissels of merges.
Ik heb deze stap nu in mijn dagelijkse routine opgenomen, wat het aantal fouten in mijn commithistorie drastisch heeft verminderd.
Zelfs met de eenvoud ervan kan git status soms overweldigende of verwarrende informatie geven. Hier zijn een paar veelvoorkomende problemen en hoe je ze aanpakt.
In grote projecten, vooral bij gebruik van diverse buildtools, kun je veel bestanden zien die je nooit wilde tracken. Als deze verschijnen, controleer dan je .gitignore-instellingen en verwijder ze indien nodig uit tracking met:
git rm --cached <file-name>
Na het bijwerken van je .gitignore en het gebruik van git rm --cached, voer je git status opnieuw uit om te verifiëren dat het bestand niet langer wordt getrackt of onnodig verschijnt.
In projecten met veel bestanden—vooral die logbestanden, caches of tijdelijke assets genereren—kan de output van git status rumoerig en lastig te scannen worden. Daardoor is het moeilijk om je te richten op de betekenisvolle wijzigingen die aandacht vragen.
In dat geval kun je een beknopte samenvatting met één regel per bestand tonen:
git status --short
Of ongetraceerde bestanden volledig uit de output verbergen:
git status -u no
Samen maken deze opties git status gerichter en beter behapbaar—zeker in grotere codebases of geautomatiseerde workflows.
Kortom, git status is een onmisbaar hulpmiddel dat je een realtime venster geeft op de gezondheid van je repository. Door de standaardweergave, de korte weergave en geavanceerde opties zoals de -u-vlag te beheersen, kun je je Git-workflow stroomlijnen en veelvoorkomende valkuilen vermijden. Experimenteer met deze modi in je projecten en merk hoe de helderheid in het beheren van wijzigingen je ontwikkelproces versnelt.
Als je nieuw bent met Git, wordt het begrijpen van git status nog krachtiger in combinatie met git init, de opdracht die repositories initialiseert. Als je dat nog niet hebt gedaan, bekijk dan mijn Git Init-tutorial om te leren hoe je een repository vanaf nul opzet.
En als je je Git-vaardigheden verder wilt verdiepen, bekijk dan deze DataCamp-cursussen:
Happy coding—en op naar perfecte synchronisatie met je repository!
Waar git status een samenvatting van wijzigingen toont, laat git diff de daadwerkelijke inhoudsverschillen tussen bestanden zien, voor een meer gedetailleerde vergelijking.
Ja, met opties zoals --short, --porcelain en -u kun je de output afstemmen om compacter of scriptvriendelijker te zijn, afhankelijk van je behoeften.
Gestagede wijzigingen zijn toegevoegd aan de index en klaar om te committen, terwijl niet-gestagede wijzigingen nog in je werkdirectory staan en niet voor een commit zijn gemarkeerd.
Je kunt patroonregels toevoegen aan een .gitignore-bestand om te voorkomen dat bepaalde bestanden (zoals logs of buildartefacten) als ongetraceerd in git status verschijnen.
Ongetraceerde bestanden zijn bestanden die niet aan de Git-index zijn toegevoegd. Ze blijven verschijnen als je ze niet expliciet negeert in .gitignore of staged met git add.
Door git status uit te voeren vóór je commit, kun je alle gestagede en niet-gestagede wijzigingen bekijken, zodat je geen bestanden mist of per ongeluk iets onvolledigs commit.
Zeker. git status markeert conflicten en geeft aan hoe je ze oplost voordat je een merge afrondt.
Vaak! Door git status te gebruiken vóór het stagen, committen of wisselen van branch blijf je georganiseerd en voorkom je kostbare fouten.
Ik ben een data-engineer en communitybouwer die werkt aan datapijplijnen, cloud en AI-tools, en tegelijkertijd praktische, impactvolle tutorials schrijft voor DataCamp en beginnende developers.
Leer meer over Git met deze cursussen!
Cursus
Cursus

blog
Adel Nehme
15 min