Nytt kurs!Tillit på arbeidsplassenBygg tillit, med Per Nordahl.Se kurset

Nytt kurs!Tillit på arbeidsplassen

Bygg tillit, med Per Nordahl.Se kurset

Slik bruker du .gitignore i Git

Hold node_modules, .env og byggefiler utenfor Git med .gitignore. Mønstrene du trenger, ferdige maler, og hva du gjør når en fil ikke blir ignorert.

4 min lesing3 min video

Utdrag fra nettkurset Git og GitHubAv

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

  1. Lag en fil som heter .gitignore i roten av prosjektet, på samme nivå som mappen .git. Navnet begynner med punktum og har ingen filendelse.
  2. Skriv ett mønster per linje, for eksempel node_modules/ og .env.
  3. Lagre, og kjør git status. Filene du har lagt inn, skal være borte fra listen, mens .gitignore selv dukker opp som ny.
  4. 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ønsterHva det ignorerer
.envAlle filer som heter .env, uansett hvilken mappe de ligger i
/tingBare 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
*.logAlle filer som slutter på .log
!viktig.logEt unntak. Utropstegnet tar med en fil som et tidligere mønster ignorerte
# tekstEn 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.

  1. 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.
  2. Sjekk at filen står i .gitignore.
  3. 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.

Sondre StaiFaglærer i IT og design

Neste artikkel

Slik planlegger du arbeidet med GitHub Issues og Projects

  • Nettkurs i Git og GitHub
  • Nettkurs i Visual Studio Code
  • Nettkurs i Azure – fundamentale konsepter (AZ-900)

Se hele nettkurset

Videoen er et utdrag. Få tilgang til 170+ nettkurs og nettstudier i ett abonnement.

Få tilgang til alle nettkurs