.gitignore
Git trackar allt — om du inte säger åt det att sluta.
En .gitignore-fil är en lista med filer och mappar som Git ska blunda för. Det låter enkelt. Men konsekvenserna av att missa den är allt annat än enkla.
Varför det spelar roll
Utan .gitignore hamnar följande i ditt repo — och på GitHub:
- Lösenord och API-nycklar i
.envochappsettings.json - Kompilerade filer i
bin/ochobj/— stora, onödiga, genereras om automatiskt - IDE-inställningar i
.vs/och.idea/— stör kollegor som använder en annan editor - Beroenden i
node_modules/— kan väga gigabytes, installeras med ett kommando
Ett råkat pushat lösenord är inte bara pinsamt. Bots skannar GitHub konstant och hittar nycklar inom sekunder. Se Råkade commita secrets för vad du gör om det händer.
Syntax
# Kommentar — ignoreras av Git
bin/ # hela mappen*.dll # alla filer med .dll-ändelse!important.dll # men inte den här — undantag med !
.env # en specifik fil.env.* # alla varianter: .env.local, .env.production...
# Mapp var som helst i repot**/logs/
# Bara i roten/secrets.json* matchar vad som helst utom /
** matchar vad som helst inklusive / (dvs. alla nivåer)
! är ett undantag — inkludera trots att ett tidigare mönster utesluter
.gitignore för C# / .NET
# Kompileratbin/obj/
# Visual Studio.vs/*.user*.suo
# Rider / JetBrains.idea/
# Känslig konfigurationappsettings.*.json!appsettings.json*.env.envsecrets.jsonappsettings.*.json fångar appsettings.Development.json, appsettings.Production.json m.fl. — men !appsettings.json (utan miljösuffix) tillåts ändå, eftersom den brukar innehålla ofarliga standardvärden.
Officiella mallar
Microsoft underhåller en officiell .gitignore för Visual Studio / .NET som del av GitHubs mall-repo:
👉 github/gitignore — VisualStudio.gitignore
Det är den som gitignore.io också använder som källa — så de ger samma resultat.
Generera en .gitignore automatiskt
Istället för att skriva den för hand — använd gitignore.io.
Välj ditt språk, ramverk och IDE. Kopiera resultatet till .gitignore i rotkatalogen.
# Eller via curl direkt i terminalen:curl -o .gitignore https://www.toptal.com/developers/gitignore/api/csharp,visualstudio,riderLägg till .gitignore tidigt
.gitignore ska vara första eller andra committen i ett nytt repo — inte något du lägger till “sen”.
Varför? Filer som redan är trackade ignoreras inte av .gitignore, även om du lägger till dem efteråt. Du måste aktivt berätta för Git att sluta tracka dem:
git rm --cached appsettings.Development.jsongit add .gitignoregit commit -m "chore: sluta tracka känslig konfigurationsfil"--cached tar bort filen från Git men behåller den lokalt på disken.
Global .gitignore
Vill du aldrig råka commita .DS_Store (Mac) eller Thumbs.db (Windows)? Skapa en global .gitignore som gäller alla dina repos:
git config --global core.excludesfile ~/.gitignore_globalLägg sedan in dina OS- och editor-specifika mönster i ~/.gitignore_global en gång — slipper upprepa dem i varje repo.