Wat de tool doet
De .gitignore-generator maakt het .gitignore-bestand voor je repository door kant-en-klare sjablonen te combineren. Kies de talen, frameworks, buildtools, game-engines, editors en besturingssystemen van je project, en de tool voegt hun regels samen in één bestand met een kop ### Naam ### per sectie, klaar om te kopiëren of te downloaden.
Er zitten zo’n zestig sjablonen uit de verzameling github/gitignore in: Node.js, Python, Java, Go, Rust, .NET, Swift, PHP-frameworks zoals Laravel en Symfony, Next.js, Flutter, Android, Terraform, Unity, Unreal Engine, Godot, VS Code, JetBrains-IDE’s, Vim, Emacs, macOS, Windows, Linux en meer. Alles draait in je browser; er worden geen verzoeken verstuurd.
Zo gebruik je het
- Klik op sjablonen in de lijst om ze toe te voegen. De zoekfunctie kent ook gangbare aliassen: ‘typescript’ vindt Node.js en ‘intellij’ vindt JetBrains.
- Gekozen sjablonen verschijnen bovenaan als labels, in de volgorde waarin je ze koos, en het bestand volgt die volgorde. Klik op een label om het te verwijderen, of op Wissen om opnieuw te beginnen.
- Voeg projectspecifieke regels toe onder Eigen regels, gescheiden door komma’s, bijvoorbeeld
.env, /dist, *.local. Ze komen aan het eind in een sectie### Custom ###. - Kies of je het toelichtende commentaar uit de sjablonen houdt en of regels die een eerder sjabloon al bevat worden verwijderd.
- Kopieer het resultaat of download het. Het bestand heet
.gitignore; sla het op in de hoofdmap van de repository.
De selectie staat in het adres van de pagina, dus een bladwijzer of gedeelde link levert hetzelfde bestand op.
Voorbeeld
Met Node.js, macOS en VS Code, de eigen regel .env.local en commentaar uit krijg je een bestand als dit (ingekort):
### Node.js ###
logs
*.log
npm-debug.log*
…
node_modules/
…
### macOS ###
.DS_Store
.AppleDouble
.LSOverride
…
### VS Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
!*.code-workspace
*.vsix
### Custom ###
.env.local
Patronen die met ! beginnen nemen weer op wat een eerdere regel uitsloot: hier blijven gedeelde VS Code-instellingen, taken en startconfiguraties in de repository, terwijl persoonlijke editorstatus wordt genegeerd. .env als eigen regel toevoegen zou niets veranderen, omdat het Node.js-sjabloon die al bevat.
Tips
- Zet regels voor je persoonlijke tools (swapbestanden van de editor, metadata van het systeem) in een globaal uitsluitingsbestand, zodat alle repositories ervan profiteren zonder herhaling.
- Een afsluitende slash zoals
build/matcht alleen mappen; een slash vooraan zoals/buildkoppelt de regel aan de hoofdmap van de repository. - Met
git check-ignore -v <pad>zie je welke regel van welk ignore-bestand op een pad van toepassing is. - Vertrouw niet op .gitignore om geheimen te beschermen die al gecommit zijn: vervang ze en herschrijf de geschiedenis.
Veelgestelde vragen
› Waar komen de sjablonen vandaan?
Het zijn meegeleverde kopieën van de officiële verzameling github/gitignore, die GitHub publiceert onder de publieke-domeinverklaring CC0. Er wordt niets gedownload als je de tool gebruikt; de sjablonen zitten in de pagina.
› Waarom wordt een bestand nog gevolgd nadat ik het aan .gitignore heb toegevoegd?
.gitignore werkt alleen op niet-gevolgde bestanden. Is het bestand al eerder gecommit, haal het dan uit de index met git rm --cached <bestand> (of -r voor een map) en commit; het bestand blijft op schijf en wordt daarna genegeerd.
› Wat doet Dubbele regels verwijderen?
Veel sjablonen delen regels: Java en Kotlin negeren allebei *.class, C en C++ allebei *.o. Met de optie aan wordt elke regel alleen de eerste keer geschreven, en een kopcommentaar waarvan alle regels zijn verwijderd verdwijnt ook. Zet hem uit om elk sjabloon precies zoals gepubliceerd te krijgen.
› Moet ik het .gitignore-bestand committen?
Ja. Een gecommitte .gitignore geldt voor iedereen die de repository kloont. Regels die alleen je eigen machine betreffen, zoals je editor of besturingssysteem, kunnen ook in een globaal uitsluitingsbestand (git config --global core.excludesFile ~/.gitignore_global).