Skip to content

Instantly share code, notes, and snippets.

@montasim
Last active December 9, 2025 07:06
Show Gist options
  • Select an option

  • Save montasim/f33d1941104f48b5e73477ae75519dbc to your computer and use it in GitHub Desktop.

Select an option

Save montasim/f33d1941104f48b5e73477ae75519dbc to your computer and use it in GitHub Desktop.
This file specifies intentionally untracked files that Git should ignore.
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
####################################################
# .gitignore Configuration File
####################################################
#
# Version: 1.0.0
# License: CC BY-NC-ND 4.0
#
# Author: Mohammad Montasim-Al-Mamun Shuvo
# Created: 2025-01-28
# Contact Email: montasimmamun@gmail.com
# Contact GitHub: https://github.com/montasim
####################################################
# OVERVIEW
####################################################
# This file defines which files and directories Git
# must ignore when tracking changes.
#
# Primary objectives:
# • Keep the repository clean and minimal
# • Prevent committing secrets or private data
# • Exclude machine-generated and user-specific files
# • Avoid merge conflicts from local tooling
# • Improve readability and maintainability
#
####################################################
# DESIGN PRINCIPLES
####################################################
# 1. Reproducible builds only
# → Ignored files must be regenerable
#
# 2. Security over convenience
# → Secrets, tokens, logs, uploads are excluded
#
# 3. Tool-agnostic
# → Supports multiple editors, OSs, and PMs
#
# 4. Explicit documentation
# → Every section explains *why* files are ignored
#
####################################################
# IMPORTANT NOTES
####################################################
# • Removing an entry does NOT retroactively track files
# • Use `git add -f <file>` to force-track ignored files
# • Changes should be discussed in PRs
#
####################################################
# IDE AND CODE EDITOR SETTINGS
####################################################
# Purpose:
# Editor and IDE configuration files are often user-specific.
# Committing them causes noise and conflicts across teams.
# JetBrains (IntelliJ IDEA, WebStorm, Android Studio)
.idea/
# Visual Studio Code workspace settings
.vscode/
# macOS Finder metadata files
.DS_Store
####################################################
# DEPENDENCY DIRECTORIES
####################################################
# Purpose:
# Installed dependencies are large, platform-specific,
# and reproducible using package managers.
# Node.js dependencies
/node_modules/
# Yarn (Berry) cache, plugins, and releases
.yarn/
# Yarn Plug'n'Play manifest
.pnp
.pnp.js
# Yarn install state cache
.yarn/install-state.gz
####################################################
# BUILD OUTPUTS
####################################################
# Purpose:
# Generated build artifacts are recreated from source
# during CI/CD or local builds and must not be committed.
# Generic build output
/build/
# Next.js build output
.next/
# Static export output (next export)
/out/
####################################################
# LOG FILES
####################################################
# Purpose:
# Logs are runtime artifacts containing debug and error
# information. They are environment-specific and sensitive.
# Generic logs directory
logs/
# All log files
*.log
*.logs
# JSON-formatted logs
logs*.json
# Docker logs
docker.log
# npm debug logs
npm-debug.log*
# Yarn debug/error logs
yarn-debug.log*
yarn-error.log*
####################################################
# ENVIRONMENT VARIABLES & SECRETS
####################################################
# Purpose:
# Environment files contain credentials, tokens, URLs,
# and other sensitive configuration that must NEVER
# be committed.
# Base environment file
.env
# Environment-specific configs
.env.development
.env.test
.env.staging
.env.uat
.env.production
# Local overrides (recommended)
.env*.local
####################################################
# TESTING & COVERAGE
####################################################
# Purpose:
# Test artifacts are generated during local or CI test
# runs and do not belong in version control.
# Test coverage reports
/coverage/
####################################################
# DOCUMENTATION OUTPUTS
####################################################
# Purpose:
# Generated documentation or local docs exports can be
# large and are often environment-specific.
# Generated documentation
/documentation/
####################################################
# VERCEL CONFIGURATION
####################################################
# Purpose:
# Vercel maintains local deployment metadata that is
# environment-specific and auto-generated.
# Vercel project directory
.vercel/
####################################################
# TYPESCRIPT & FRAMEWORK ARTIFACTS
####################################################
# Purpose:
# Generated framework files and build metadata that
# are automatically recreated.
# TypeScript incremental build metadata
*.tsbuildinfo
# Next.js generated type declarations
next-env.d.ts
####################################################
# SECURITY & PRIVATE FILES
####################################################
# Purpose:
# Cryptographic keys and private credentials must
# NEVER be versioned.
# PEM / key / certificate files
*.pem
*.key
*.crt
####################################################
# LOCAL FILE UPLOADS
####################################################
# Purpose:
# User-uploaded content stored locally during development
# must not be committed to avoid privacy and size issues.
# Temporary uploaded assets
/public/assets/
####################################################
# DATABASE & RUNTIME FILES
####################################################
# Purpose:
# Local database files or runtime artifacts should never
# be committed.
# SQLite databases
*.sqlite
*.sqlite3
# Prisma local dev artifacts
/prisma/dev.db
####################################################
# PACKAGE LOCK FILES
####################################################
# Purpose:
# Lock files ensure reproducible installs.
# However, in multi-PM or library setups they may be
# intentionally excluded.
#
# ⚠️ WARNING:
# For applications, committing ONE lock file is usually
# recommended. Ignore these only if project policy allows.
# npm
package-lock.json
# Yarn
yarn.lock
# pnpm
pnpm-lock.yaml
####################################################
# END OF FILE
####################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment