Cursus
Verschijnen je commits met de verkeerde naam in de Git-geschiedenis?
Je maakt een commit, pusht die naar de teamrepo, en ineens vraagt je collega wie "unknown" is. Of erger: je persoonlijke e-mailadres duikt op in een werkproject. Het is een beginnersfout, maar we zijn er allemaal geweest. Git slaat bij elke commit een naam en e-mailadres op zodat teams kunnen bijhouden wie wat heeft veranderd. Als je dit niet goed instelt, lijken je commits van iemand anders te komen.
De oplossing is simpel: Git gebruikt user.name en user.email uit je config-instellingen. Als mensen zeggen "git config username", bedoelen ze user.name. En nee, dat is niet hetzelfde als je GitHub-gebruikersnaam.
In dit artikel laat ik je zien hoe je je Git-gebruikersnaam globaal of lokaal instelt, je huidige config controleert, verschillende namen voor verschillende projecten gebruikt en veelvoorkomende username-problemen oplost.
Snel antwoord: zo stel je je Git-gebruikersnaam in
Dit zijn de twee commando's die je nodig hebt:
# Set Git username globally (all repos)
git config --global user.name "Your Name"
# Set Git username for the current repo only
git config user.name "Your Name"
De globale config geldt voor elke repository op je machine, tenzij een specifieke repo deze overschrijft.
Het gewone git config-commando (zonder --global) heeft alleen effect op de repository waarin je je bevindt.
Voer dit commando uit om te controleren wat Git voor je volgende commit zal gebruiken:
git config user.name
Dit toont de actieve gebruikersnaam voor je huidige locatie — ofwel de lokale repo-instelling of de globale fallback als er geen lokale instelling is.
git config user.name
Dit toont de actieve gebruikersnaam voor je huidige locatie — ofwel de lokale repo-instelling of de globale fallback als er geen lokale instelling is.

Over Git-gebruikersnamen en identiteit
Git voegt twee gegevens toe aan elke commit die je maakt: een auteursnaam en een auteurse-mail.
Deze komen rechtstreeks uit user.name en user.email in je Git-config. Wanneer je git commit uitvoert, pakt Git de ingestelde waarden en zet die permanent in de metadata van die commit. Je teamgenoten zien deze info in git log, blame-weergaven en pull requests.
Git valideert dit niet.
Je kunt je naam instellen op "Batman", "Linus Torvalds" of alleen je voornaam met een initiaal van je achternaam. Privacygerichte developers gebruiken vaak pseudoniemen of handles in plaats van hun volledige wettelijke naam, zeker voor publieke open-source. Git kan het niets schelen. Het slaat alleen op wat jij opgeeft.
Het enige dat je moet onthouden is dat je Git-gebruikersnaam niet hetzelfde is als je GitHub-gebruikersnaam.
Je Git-gebruikersnaam (user.name) is wat je lokaal configureert. Je GitHub-gebruikersnaam is je account-handle, of dat wat in URL's verschijnt zoals github.com/your-handle. Het zijn volledig gescheiden systemen en hoeven niet overeen te komen.
Hostingplatforms zoals GitHub en GitLab gebruiken je e-mailadres om commits aan je account te koppelen. De naam is alleen voor weergave. Als het e-mailadres van je commit overeenkomt met een e-mailadres op je GitHub-account, toont GitHub je profielfoto en linkt naar je account. De naam die je in user.name zet, verschijnt als tekst, maar het e-mailadres doet het echte werk om commits aan jou te koppelen.
Het wijzigen van user.name heeft alleen effect op commits die je vanaf nu maakt. Oude commits die je al hebt gepusht, behouden hun oorspronkelijke auteursnaam.
Hoe git config werkt voor user.name
Git slaat configuratie-instellingen op drie plekken op. Ik laat je nu zien welke dat zijn, zodat je niet met onverwachte namen eindigt.
-
Systeemniveau-config (
--system) geldt voor elke gebruiker op de machine. Dit is in de praktijk zeldzaam en de meeste developers raken dit nooit aan. -
Globale config (
--global) geldt voor je OS-gebruikersaccount en dekt al je repositories. -
Lokale config (
--local) staat in het.git/config-bestand van een enkele repository en heeft alleen op die repo effect.
Git gebruikt prioriteitsregels om te beslissen welke waarde wint.
Lokale instellingen overschrijven globale instellingen, die weer systeeminstellingen overschrijven. Als je user.name op alle drie de niveaus instelt, gebruikt Git de lokale waarde wanneer je in die repo zit en negeert de rest.
Stel dat je het volgende hebt:
-
Systeem:
user.name = "System User" -
Globaal:
user.name = "Global User" -
Lokaal (in een specifieke repo):
user.name = "Local User"
Als je in die repo commit, gebruikt Git "Local User" omdat lokaal hier het meest specifiek is. Buiten die repo valt Git terug op "Global User" uit je globale config.
Je kunt al je config-waarden en hun herkomst bekijken:
git config --list
git config --list --show-origin

De vlag --show-origin print het bestandspad naast elke instelling. Zo debug je "waarom gebruikt Git deze naam?" — je ziet precies welk configbestand de waarde instelt.
Deze configbestanden staan op voorspelbare locaties: ~/.gitconfig voor globale instellingen en .git/config in elke repository voor lokale instellingen. Systeemconfig staat doorgaans in /etc/gitconfig op Linux en macOS.
Wanneer je git config --global user.name "Your Name" uitvoert, schrijft Git naar ~/.gitconfig en wordt die waarde je standaard voor elke repo, tenzij je deze lokaal overschrijft.
Hoe je je huidige Git-gebruikersnaam checkt
Je moet weten welke naam Git op je volgende commit plakt. Hier zijn een paar commando's om te draaien.
Snelle commando's om user.name te bekijken
Dit zijn de commando's die je Git-gebruikersnaam tonen:
# Show the active user.name for the current repo (or global if outside a repo)
git config user.name
# Show specifically the global username
git config --global user.name
# Show everything and scan for user.name and user.email
git config --list

Het eerste commando — git config user.name — is wat je meestal wilt. Het toont de waarde die Git daadwerkelijk in die repo gebruikt. Als je binnen een repo met een lokale override zit, zie je de lokale waarde. Zo niet, dan zie je de globale fallback.
Als je de volledige configlijst wilt filteren, pipe hem dan door grep:
git config --list | grep user.name
git config --list | grep user.name

Dit werkt op Linux en macOS. Op Windows gebruik je findstr in plaats van grep.
Begrijpen wat je ziet
Als git config user.name binnen een repo een waarde print, is dat wat Git daar gebruikt bij het committen.
Maar git config --global user.name kan iets anders tonen. Git negeert de globale waarde als er een lokale instelling bestaat. Dit is waar verwarring ontstaat. Men wijzigt de globale config en vraagt zich af waarom commits nog steeds de oude naam tonen.
Gebruik git config --list --show-origin om dit te debuggen:
git config --list --show-origin
git config --list --show-origin

Dit print het bestandspad waar elke instelling vandaan komt — gitconfig voor lokaal, ~/.gitconfig voor globaal of /etc/gitconfig voor systeem. Scan op user.name en je ziet precies welk configbestand wint.
Stap voor stap: je Git-gebruikersnaam instellen
De meeste developers stellen hun Git-gebruikersnaam één keer in en vergeten het daarna. Je kunt hem echter ook per project aanpassen als dat nodig is.
Je Git-gebruikersnaam globaal instellen
Dit is de eenmalige setup die je op een nieuwe machine doet.
- Open Terminal (macOS/Linux) of Git Bash (Windows)
- Voer het config-commando uit met je naam:
git config --global user.name "Your Name"
3. Controleer of het gelukt is:
git config --global user.name
Git gebruikt deze naam nu voor elke commit in elke repository op je machine, tenzij je die lokaal overschrijft.
Stel hier ook meteen je e-mail in:
git config --global user.email "your.email@example.com"
Beide waarden moeten ingesteld zijn zodat commits goed werken en gekoppeld worden aan je GitHub- of GitLab-account.
git config --global user.email "your.email@example.com"
Als je verschillende namen nodig hebt voor verschillende projecten, bijvoorbeeld je echte naam voor werkrepo's en een pseudoniem voor open source, bijvoorbeeld.
Zo overschrijf je de globale instelling voor één repo:
1. Navigeer naar de repository:
cd /path/to/your/repo
2. Stel de lokale gebruikersnaam in:
git config user.name "Project-Specific Name"
3. Controleer dat Git hem gebruikt:
git config user.name
Deze waarde staat in .git/config in die repository en overschrijft je globale user.name alleen voor die repo. Andere repo's op je machine blijven onaangetast.
Geavanceerde tip: verschillende gebruikersnamen voor verschillende mappen met includeIf
Als je aan meerdere projecten met verschillende identiteiten werkt — bijvoorbeeld alle repo's onder ~/work/ gebruiken je werknaam en alles onder ~/personal/ gebruikt een pseudoniem — dan kun je dit automatiseren met includeIf.
Voeg dit toe aan je ~/.gitconfig:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Maak vervolgens aparte configbestanden zoals ~/.gitconfig-work:
[user]
name = "Work Name"
email = "work@company.com"
En ~/.gitconfig-personal:
[user]
name = "Personal Handle"
email = "personal@email.com"
Git kiest automatisch de juiste identiteit op basis van waar de repo staat. Je hoeft niet handmatig te wisselen.
Veelvoorkomende scenario's en best practices
Zo pak je de meest voorkomende Git-username-situaties aan zonder rommel te maken.
Werk- en persoonlijke identiteiten gescheiden houden
Stel je persoonlijke naam globaal in en overschrijf die voor werkprojecten. Zo gebruiken je persoonlijke repo's standaard je voorkeursidentiteit, en werkrepo's je professionele naam.
De schoonste aanpak is includeIf gebruiken om automatisch te wisselen op basis van de map:
# In ~/.gitconfig
[user]
name = "Personal Name"
email = "personal@email.com"
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
Maak vervolgens ~/.gitconfig-work met je werkidentiteit. Elke repo onder ~/work/ krijgt automatisch de werknaam. Ik heb dit in de vorige sectie uitgelegd.
Je kunt ook per repo een lokale config instellen als je maar een paar werkprojecten hebt, maar includeIf schaalt beter als je meerdere identiteiten over veel repo's beheert.
Een pseudoniem of handle gebruiken
Git geeft er niet om of je je wettelijke naam gebruikt.
Je kunt user.name instellen op een handle, een voornaam met initiaal, of wat dan ook past bij je privacyvoorkeuren. Dit is gebruikelijk in open source, waar bijdragers wat anonimiteit willen. Kies gewoon iets waarmee je team je commits kan herkennen.
Team- of bot-identiteiten
Geautomatiseerde commits moeten beschrijvende namen gebruiken zoals "CI Bot" of "Deploy Script", zodat ze opvallen in de geschiedenis.
git config user.name "CI Bot"
git config user.email "ci@company.com"
Met deze aanpak is het duidelijk welke commits van automatisering komen en welke van developers wanneer je git log scant of blame-annotaties bekijkt.
Zorg dat naam en e-mail overeenkomen op hostingplatforms
GitHub en GitLab koppelen commits aan je account via het e-mailadres, niet de naam. Als het commitmailadres overeenkomt met een e-mailadres op je GitHub-account, linkt GitHub de commit aan je profiel en toont je avatar.
De user.name-waarde verschijnt als tekst in de UI — in pull requests, blame-weergaven en de commitgeschiedenis. Stel hem in op iets duidelijks zodat teamgenoten weten wie de wijziging heeft gedaan.
Probleemoplossing voor git config username
Als er iets rond git-gebruikersnaam niet werkt, vind je hier waarschijnlijk de oorzaak en oplossing.
Git zegt "please tell me who you are" of kan je identiteit niet autodetecteren
Je ziet een foutmelding zoals deze wanneer je probeert te committen:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Dit betekent dat Git je user.email niet heeft ingesteld, en soms ontbreekt user.name ook. Los dit op door beide globaal in te stellen:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Daarna werken commits weer.
Mijn commits tonen de verkeerde naam op GitHub of GitLab
Controleer welke naam Git daadwerkelijk in die repo gebruikt:
git config user.name
Als de verkeerde naam verschijnt, is er mogelijk een lokale override ingesteld. Los het op met dit commando:
git config user.name "Correct Name"
Nieuwe commits gebruiken de juiste naam, maar oude commits die je al hebt gepusht, behouden hun oorspronkelijke auteursnaam.
Ik heb mijn Git-gebruikersnaam bijgewerkt, maar oude commits tonen nog steeds de oude naam
Commitmetadata wordt vastgelegd in de Git-geschiedenis wanneer je de commit maakt.
Het wijzigen van user.name heeft alleen effect op toekomstige commits. Als je auteursnamen op oude commits moet wijzigen, moet je de geschiedenis herschrijven met git rebase --interactive of git filter-repo. Dit is geavanceerd, risicovol op gedeelde branches en meestal de moeite niet waard.
Ik haal identiteiten door elkaar wanneer ik tussen projecten wissel
Gebruik includeIf om automatisch te wisselen op basis van waar de repo staat.
Voeg dit toe aan ~/.gitconfig:
[includeIf "gitdir:~/company/"]
path = ~/.gitconfig-company
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Maak vervolgens ~/.gitconfig-company met je werkidentiteit en ~/.gitconfig-personal met je persoonlijke identiteit. Git kiest automatisch de juiste op basis van de locatie van de repo — nooit meer per ongeluk met de verkeerde naam committen.
Conclusie
Kortom, je Git-gebruikersnaam goed instellen houdt je commithistorie schoon en maakt samenwerken makkelijker.
Wanneer elke commit de juiste auteursnaam toont, kan je team bijhouden wie wijzigingen heeft gemaakt. Code reviews gaan sneller, blame-annotaties zijn logisch en de projectgeschiedenis blijft leesbaar. Dit wordt belangrijker naarmate projecten groeien en meer mensen bijdragen.
Als je wisselt tussen werk- en persoonlijke projecten, of verschillende namen gebruikt voor verschillende klanten, hoef je niet elke keer handmatig van config te wisselen. Stel het eenmalig in met lokale overrides of includeIf, en Git kiest elke keer de juiste.
Ben je klaar om verder te gaan dan de basis en alle verwarring rond Git en GitHub weg te nemen? Deze DataCamp-bronnen zijn je volgende beste stap:
FAQs
Wat is het verschil tussen Git-gebruikersnaam en GitHub-gebruikersnaam?
Je Git-gebruikersnaam (user.name) is wat je lokaal in je config instelt. Het is alleen metadata die Git op commits zet. Je GitHub-gebruikersnaam is je account-handle die in URL's verschijnt zoals github.com/your-handle. Het zijn volledig gescheiden systemen en hoeven niet overeen te komen. GitHub gebruikt je e-mailadres om commits aan je account te koppelen, niet de gebruikersnaam.
Hoe check ik welke Git-gebruikersnaam ik momenteel gebruik?
Voer git config user.name uit binnen een repo om de actieve gebruikersnaam te zien die Git voor je volgende commit gebruikt. Als je een lokale override hebt ingesteld, zie je die in plaats van je globale standaard. Gebruik git config --list --show-origin om precies te zien welk configbestand de waarde instelt.
Kan ik verschillende Git-gebruikersnamen voor verschillende projecten gebruiken?
Ja, en dat is ook aan te raden als je aan zowel persoonlijke als werkprojecten werkt. Stel je persoonlijke naam globaal in met git config --global user.name "Your Name", en overschrijf die vervolgens in specifieke repo's met git config user.name "Work Name". Voor betere automatisering gebruik je includeIf in je ~/.gitconfig om identiteiten automatisch te wisselen op basis van de maplocatie.
Waarom tonen mijn oude commits nog steeds de verkeerde naam nadat ik mijn Git-gebruikersnaam heb bijgewerkt?
Commitmetadata wordt vastgelegd in de Git-geschiedenis wanneer je de commit maakt. Het wijzigen van user.name heeft alleen effect op toekomstige commits. Oude commits behouden hun oorspronkelijke auteursnaam. Je zou de geschiedenis moeten herschrijven met git rebase --interactive of git filter-repo om oude namen te veranderen — riskant op gedeelde branches en meestal niet de moeite waard.
Hoe voorkom ik dat ik per ongeluk met de verkeerde identiteit commit wanneer ik wissel tussen werk en persoonlijke projecten?
Stel includeIf in je ~/.gitconfig in om automatisch verschillende identiteiten te gebruiken op basis van waar de repo staat. Maak aparte configbestanden voor werk en privé, en Git kiest de juiste identiteit op basis van het mappad van de repo. Zo hoef je nooit handmatig te wisselen of je af te vragen onder welke naam je commit.

