Du kjører git status i et nytt React-prosjekt og får en liste så lang at terminalen ikke klarer å vise den. Det meste ligger i mappen node_modules, tusenvis av hjelpefiler som ikke er din kode. Lenger ned står .env, filen med API-nøkkelen din. Den skal i alle fall ikke opp på GitHub. Løsningen er en liten tekstfil som heter .gitignore.
Hva .gitignore gjør
.gitignore er en vanlig tekstfil som ligger i roten av prosjektet. Hver linje er et mønster, og alle filer og mapper som passer med et mønster, later Git som ikke finnes. De dukker ikke opp i git status, de blir ikke med når du skriver git add ., og de havner aldri på GitHub. Filene ligger fortsatt på maskinen din og virker som før.
Selve .gitignore-filen skal derimot committes. Da gjelder de samme reglene for alle som kloner prosjektet, og ingen i teamet laster opp node_modules ved et uhell.
Dette hører hjemme i .gitignore
- Avhengigheter som node_modules i JavaScript-prosjekter eller venv i Python. De kan lastes ned på nytt med én kommando, og fyller repoet med tusenvis av filer.
- Byggefiler som dist, build og .next. De lages av koden din, så det er koden som skal versjoneres, ikke resultatet.
- Miljøfiler med hemmeligheter som .env, med passord, API-nøkler og tilkoblingsadresser til databaser.
- Logger og midlertidige filer, for eksempel alt som slutter på .log.
- Systemfiler som .DS_Store på Mac og Thumbs.db på Windows.
Slik lager du en .gitignore
- Lag en fil som heter .gitignore i roten av prosjektet, på samme nivå som mappen .git. Navnet begynner med punktum og har ingen filendelse.
- Skriv ett mønster per linje, for eksempel node_modules/ og .env.
- Lagre, og kjør git status. Filene du har lagt inn, skal være borte fra listen, mens .gitignore selv dukker opp som ny.
- Commit .gitignore sammen med resten av prosjektet.
I kurset testes dette med en mappe som heter «ting», med en fil «tang» inni. Med linjen /ting i .gitignore ser versjonskontrollen bare den nye .gitignore-filen. Fjernes linjen, dukker mappen og filen opp som nye endringer med en gang.
Mønstrene du trenger
| Mønster | Hva det ignorerer |
|---|---|
| .env | Alle filer som heter .env, uansett hvilken mappe de ligger i |
| /ting | Bare ting i roten av prosjektet, ikke i undermapper |
| node_modules/ | Alle mapper som heter node_modules. Skråstreken til slutt betyr at det bare gjelder mapper |
| *.log | Alle filer som slutter på .log |
| !viktig.log | Et unntak. Utropstegnet tar med en fil som et tidligere mønster ignorerte |
| # tekst | En kommentar, som Git hopper over |
Start med en ferdig mal
Du trenger sjelden skrive .gitignore fra bunnen. Når du lager et nytt repo på GitHub, kan du velge en .gitignore-mal for språket eller rammeverket ditt. Velger du Node, som er det React og de fleste JavaScript-prosjekter bygger på, får du en fil som allerede dekker avhengigheter, byggefiler, logger og miljøfiler.
Har du allerede et prosjekt, finner du de samme malene i GitHubs eget repo github/gitignore, der du kan kopiere den du trenger. Mange verktøy som setter opp nye prosjekter, lager også en .gitignore for deg. Les den likevel gjennom, og legg til det som er spesielt for ditt prosjekt.
Når .gitignore ikke virker
Den vanligste frustrasjonen: du legger .env inn i .gitignore, men filen dukker fortsatt opp i git status. Grunnen er at .gitignore bare gjelder filer Git ikke allerede følger med på. Har filen først blitt committet, fortsetter Git å spore den, uansett hva som står i .gitignore.
- Kjør git rm --cached .env. Filen tas ut av Git, men blir liggende på maskinen din. For en hel mappe bruker du git rm -r --cached node_modules.
- Sjekk at filen står i .gitignore.
- Commit endringen. Fra nå av ignoreres filen.
Obs: Har filen med hemmeligheter allerede blitt pushet til GitHub, ligger den i historikken selv om du fjerner den nå. Lag nye nøkler og passord, og slett de gamle. Det er det eneste som hjelper.
Er du usikker på hvorfor en fil blir ignorert, eller ikke blir det, svarer git check-ignore -v etterfulgt av filnavnet. Den viser hvilken linje i hvilken .gitignore-fil som slår inn.
Én .gitignore for hele maskinen
Noen filer har ingenting med prosjektet å gjøre, men med maskinen din. .DS_Store lages av macOS i hver mappe du åpner, og editorer lager egne innstillingsfiler. I stedet for å legge dem inn i hvert eneste prosjekt, kan du lage en global ignore-fil og koble den til med git config --global core.excludesFile etterfulgt av stien til filen. Den gjelder da for alle repoene på maskinen, og prosjektets .gitignore kan handle om prosjektet. Alle detaljene står i Git-dokumentasjonen for gitignore.
Bruker du KI-verktøy som jobber med filene dine, blir .gitignore enda viktigere. Slik kobler du Claude Code til GitHub med MCP viser hvordan en token legges i .env, og hvorfor du må sjekke at den er ignorert før du gjør noe annet. Er du ny i Git, forklarer Forskjellen på Git og GitHub hva som skjer lokalt og hva som havner i skyen.
Denne videoen er hentet fra kurset Git og GitHub på Utdannet.no. I det fulle kurset setter du opp .gitignore og en README for et ekte prosjekt, jobber med branches, pull requests og code review, og planlegger arbeidet med Issues og GitHub Projects.


