Menu

Générateur de .gitignore

Créez un .gitignore propre pour n'importe quelle stack — langages, frameworks, IDE et OS.

Dernière mise à jour

Stacks rapides
Choisir des templates2 sélectionnés

Langages

Frameworks

Éditeurs et IDE

Systèmes d'exploitation

.gitignore · 37 lignes
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

Qu'est-ce qu'un générateur de .gitignore ?

Chaque dépôt Git a besoin d'un .gitignore. C'est la liste texte des chemins que Git **ne doit pas** suivre — artefacts de build, dossiers de dépendances, configs d'IDE, déchets d'OS comme .DS_Store. Sans lui, votre premier commit embarque node_modules/, .env et target/, et défaire ce désordre est bien plus pénible que de configurer le fichier dès le départ.

Chaque écosystème ignore des choses différentes, et la plupart des projets en cumulent plusieurs. Une appli Node + TypeScript typique sur un Mac avec VS Code requiert déjà l'union de quatre listes. L'écrire de mémoire, c'est oublier coverage/, fuiter un .env ou committer un .idea/ perdu d'un coéquipier sous JetBrains.

Ce générateur embarque donc des templates curés du projet de référence github/gitignore — les mêmes règles que les suggestions officielles GitHub — et permet de les cumuler. Cochez les cases, et l'outil émet un .gitignore unique et dédupliqué à coller dans votre repo. Pas de compte, pas d'upload, tout dans le navigateur.

Ce que vous apprendrez en construisant votre .gitignore

  • Les motifs de .gitignore utilisent la syntaxe glob : *.log ignore tous les logs, build/ ignore un dossier, !important.log réinclut un fichier même si un glob le capture.
  • Les motifs s'appliquent par rapport à la position du .gitignore — un .gitignore dans src/ n'affecte que les fichiers sous src/.
  • Les fichiers déjà suivis ne deviennent **pas** ignorés rétroactivement. Si vous avez committé node_modules/ puis l'avez ajouté au .gitignore, il faut encore git rm -r --cached node_modules pour le dé-suivre.

Comment générer un .gitignore étape par étape

  1. Choisissez un préréglage (optionnel)

    Si votre projet correspond à une combinaison courante — Next.js, Django, Rails — cliquez sur un préréglage pour cocher toutes les cases pertinentes d'un coup. Puis ajustez en ajoutant ou en retirant deux ou trois cases.

  2. Ajoutez vos langages

    Chaque langage a des artefacts : Node a node_modules/, Python a __pycache__/ et les virtualenvs, Java a target/ et .class. Cochez les langages que votre projet compile vraiment.

  3. Ajoutez vos frameworks

    Au-dessus des règles de langage, les frameworks ajoutent leurs propres dossiers : Next.js veut .next/ et .vercel, Django veut staticfiles/ et db.sqlite3, Rails veut tmp/ et /storage/*. Cochez si vous l'utilisez.

  4. Ajoutez vos éditeurs et votre OS

    Ajoutez les templates des éditeurs utilisés par l'**équipe** (pas seulement vous) — si quelqu'un utilise JetBrains ou Vim, incluez-les. Puis ajoutez les OS de l'équipe : macOS lâche des .DS_Store, Windows des Thumbs.db, faciles à committer par mégarde.

  5. Copier ou télécharger

    Le panneau de droite montre la sortie combinée et dédupliquée. Cliquez **Copier** pour la coller dans un .gitignore à la racine du repo, ou **Télécharger** pour récupérer le fichier directement.

Syntaxe .gitignore — antisèche

Les motifs que vous écrirez le plus. Référence complète sur git-scm.com/docs/gitignore.

MotifSignificationExemple
node_modulesIgnore un fichier ou dossier portant ce nom exact, n'importe où dans l'arbreCapture à la fois /node_modules et src/node_modules
node_modules/Slash final — ne correspond qu'à un **dossier**, pas à un fichier du même nomNe capture pas un fichier nommé node_modules par erreur
/buildSlash initial — ancre au dossier du .gitignore uniquementCapture /build mais pas src/build
*.logGlob — capture tout fichier finissant par .logCapture error.log, debug.log, logs/foo.log
!important.logNégation — réinclut un fichier capturé par une règle précédenteCombinez avec *.log pour garder un log suivi
docs/**/draftDouble étoile — capture draft dans n'importe quel sous-dossier de docs/Capture docs/v1/draft et docs/2025/q1/draft
# commentCommentaire — Git ignore les lignes commençant par #Groupez les règles avec des en-têtes comme # Node.js

Exemples de .gitignore à essayer

Un .gitignore minimal Node.js + macOS

Le strict nécessaire pour Node sur Mac

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

Le minimum pour tout projet Node partagé avec un coéquipier sur macOS. Même un petit side project devrait avoir ces règles — sans .DS_Store et node_modules/, vous combattrez des conflits inutiles.

Python + Django + JetBrains

Stack Python côté serveur classique

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

Un backend Django typique développé dans PyCharm. Notez que db.sqlite3 local est ignoré — la prod ne l'utilise pas, et le committer fuite des données de dev et casse les clones frais des coéquipiers.

Surcharger une règle par une négation

Ignorer tous les logs sauf un

*.log !keep-me.log

La première ligne ignore tous les .log. La règle !keep-me.log réinclut ce fichier précis. Les négations ne fonctionnent que pour les fichiers qu'une règle antérieure a effectivement ignorés — on ne peut pas réinclure un fichier dans un dossier ignoré.

Erreurs courantes avec .gitignore

  • Ajouter .gitignore après coup en espérant que les fichiers déjà committés disparaissent. Ils ne disparaissent pas — il faut git rm -r --cached <chemin> pour les dé-suivre.
  • Committer un .env une seule fois. Un seul commit laisse le secret dans l'historique pour toujours. Ajoutez .env* au .gitignore **avant** le premier commit et changez tout secret ayant fuité.
  • Oublier le bruit OS sur les repos partagés. Si ne serait-ce qu'un coéquipier est sur macOS et que le repo n'a pas de règle .DS_Store, ces fichiers apparaîtront dans chaque diff de PR.

FAQ — Générateur .gitignore

D'où viennent ces templates .gitignore ?
Les templates sont condensés à partir du projet open-source github/gitignore — la même source que GitHub utilise quand vous cochez "ajouter un .gitignore" en créant un repo. Nous avons taillé chaque template aux règles dont les équipes ont vraiment besoin et regroupé par catégorie.
Dois-je committer le fichier .gitignore lui-même ?
Oui. Le .gitignore est fait pour être versionné et partagé avec l'équipe. C'est le *contrat* sur ce qui doit ou non être suivi. Les préférences perso (ex. votre éditeur) vont, elles, dans votre ~/.gitignore_global global.
Comment dé-suivre un fichier déjà committé ?
Ajoutez-le d'abord au .gitignore, puis lancez git rm --cached <chemin> (ou git rm -r --cached <dossier>) pour le retirer de l'index sans le supprimer du disque. Committez les deux changements ensemble pour que vos coéquipiers voient la mise à jour.
Puis-je avoir plusieurs .gitignore dans un même repo ?
Oui. Git cherche un .gitignore dans chaque dossier et applique les règles à ce sous-arbre. C'est utile dans les monorepos où front et back ont des règles très différentes — règles communes à la racine et règles par langage dans chaque paquet.
Quelle différence entre .gitignore et .git/info/exclude ?
.gitignore est committé et partagé avec l'équipe. .git/info/exclude ne vit que dans votre clone local et sert à des exclusions perso que vous ne voulez pas pousser. Pour des exclusions valables dans tous vos repos, utilisez un ~/.gitignore_global.

Autres outils pour développeurs

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER