Pourquoi un bon .gitignore compte
Chaque node_modules, .env, ou binaire compilé commité par accident est de la dette technique.
Node.js
# Dépendances
node_modules/
.pnp
.pnp.js
# Sortie de build
dist/
build/
out/
.next/
.nuxt/
.vite/
# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Environnement
.env
.env.local
.env.*.local
# Éditeur
.vscode/
.idea/
*.swp
# Couverture
coverage/
.nyc_output/
Python
# Bytecode
__pycache__/
*.py[cod]
*$py.class
# Empaquetage
*.egg-info/
*.egg
build/
dist/
pip-wheel-metadata/
# Environnements virtuels
.venv/
venv/
env/
ENV/
# Outils
.pytest_cache/
.mypy_cache/
.ruff_cache/
.tox/
.coverage
htmlcov/
# Jupyter
.ipynb_checkpoints/
# Éditeur
.idea/
.vscode/
# Environnement
.env
Rust
# Sortie de build
target/
Cargo.lock # commit pour binaires, ignorer pour bibliothèques
# Binaires
*.exe
*.dll
*.so
*.dylib
# Fuzzing
artifacts/
corpus/
# IDE
.idea/
.vscode/
*.iml
PHP / Composer
vendor/
composer.phar
# Cache
.phpunit.result.cache
.php-cs-fixer.cache
.phpstan-cache/
# Symfony / Laravel
/var/cache/*
/var/log/*
/public/uploads/
.env
.env.local
# IDE
.idea/
.vscode/
*.iml
Java / Gradle / Maven
# Compilés
*.class
*.jar
*.war
*.ear
# Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
# Gradle
.gradle/
build/
!gradle/wrapper/gradle-wrapper.jar
# IDE
.idea/
*.iml
.classpath
.project
.settings/
.vscode/
# Logs
*.log
Essentiels transversaux
# OS
.DS_Store
Thumbs.db
desktop.ini
# Éditeurs
*.swp
*.bak
*~
.vscode/
.idea/
# Secrets
*.pem
*.key
.env*
!.env.example
Gitignore global
git config --global core.excludesfile ~/.gitignore_global
cat > ~/.gitignore_global <<'EOF'
.DS_Store
*.swp
.vscode/
.idea/
EOF
Générer depuis des templates
curl -sL https://www.toptal.com/developers/gitignore/api/node,python,visualstudiocode,macos > .gitignore
Audit
git status --ignored
git check-ignore -v path/to/file