Git: Железобетонный .gitignore для веб-проекта

Такой .gitignore он отрежет кэш/логи/зависимости/IDE/секреты, не мешая нормальной разработке.

Готовое решение

# =========================================================
# Железобетонный .gitignore для веб-проектов (2026)
# PHP/MODX + Node/Next + Python + IDE + секреты + мусор
# =========================================================

# ----------------------------
# OS / Editor / IDE мусор
# ----------------------------
.DS_Store
Thumbs.db
Desktop.ini
*.swp
*.swo
*.tmp
*~
*.bak
*.orig
*.rej

.idea/
.vscode/
*.code-workspace

# При желании можно коммитить часть VSCode:
# .vscode/*
# !.vscode/extensions.json
# !.vscode/settings.json

# ----------------------------
# Логи / временные файлы / дампы / архивы
# ----------------------------
*.log
logs/
log/
tmp/
temp/
.cache/
cache/

*.sql
*.sqlite
*.sqlite3
*.gz
*.zip
*.7z
*.rar
*.tar
*.tgz
backup/
backups/
dump/
dumps/

# ----------------------------
# Секреты (ВАЖНО)
# ----------------------------
.env
.env.*
!.env.example
!.env.template

# Токены/ключи/сертификаты
*.pem
*.key
*.p12
*.pfx
*.crt
*.cer
*.der

# Если вдруг кто-то положил ssh-ключи в проект (не надо, но бывает)
id_rsa
id_rsa.pub
id_ed25519
id_ed25519.pub

# NPM/Composer токены
.npmrc
composer-auth.json
auth.json

# ----------------------------
# PHP / Composer
# ----------------------------
/vendor/
/composer.phar

# В большинстве проектов composer.lock НУЖЕН (фиксирует версии).
# Если это библиотека (а не приложение) и lock мешает — уберите его из репо осознанно.
# composer.lock

# ----------------------------
# Node.js / фронтенд сборка (React/Next/Vite/etc.)
# ----------------------------
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

dist/
build/
.out/
coverage/

# Next.js
.next/
out/

# Turbo / Vite / прочие кэши
.turbo/
.vite/
.eslintcache

# ----------------------------
# Python
# ----------------------------
__pycache__/
*.py[cod]
*.pyo

.venv/
venv/
ENV/
env/

.pytest_cache/
.mypy_cache/
.ruff_cache/
.cache/

# ----------------------------
# MODX Revolution (типовой минимум, чтобы не тащить мусор)
# ----------------------------
/core/cache/
/core/packages/
/assets/cache/

# Конфиг MODX часто содержит пароли (DB) — лучше не коммитить.
# Вместо этого держите пример: config.inc.php.sample
/core/config/config.inc.php
!/core/config/config.inc.php.sample

# Если используете кастомные экспорты/бэкапы внутри core
/core/export/

# ----------------------------
# Прочие типовые runtime-папки приложений
# ----------------------------
runtime/
storage/
var/

Пример использования

  • Шаг 1: положи файл в корень репозитория как .gitignore.
  • Шаг 2: проверь, что нужные файлы не попали под игнор случайно.
  • Шаг 3: если какие-то файлы уже были закоммичены раньше — Git продолжит их отслеживать (см. блок “Тест/проверка”).

Краевые случаи

  • Надо игнорировать “всё .env.*”, но оставить пример: уже сделано через !.env.example и !.env.template.
  • Команде нужны настройки VSCode: раскомментируй блок с .vscode/* и добавь исключения на нужные файлы через !.
  • Нужно версионировать сборку: удали/закомментируй строки про dist/build/.next.

Безопасность

  • .gitignore не спасает, если секрет уже закоммичен: его надо вычищать из истории (например, git filter-repo или BFG) и менять сам секрет.
  • Храни секреты в переменных окружения/секрет-хранилище, а в репозитории — только шаблоны .env.example.

Производительность

  • Игнор vendor, node_modules, .next, кэшей и логов резко ускоряет git status, поиск и индексацию, и уменьшает размер репо.

Совместимость

  • Работает для Git на Linux/Windows/macOS.
  • Подходит для монорепо и одиночных проектов (если монорепо — можно дублировать локальные .gitignore в подпапках).

Тест/проверка

  • Проверить, что именно игнорируется: git status --ignored
  • Понять, какая строка сработала: git check-ignore -v путь/к/файлу
  • Если файл уже отслеживается, а ты добавил его в игнор — убрать из индекса (не удаляя с диска): git rm -r --cached путь

Альтернативы

  • Глобальный ignore для твоей машины: ~/.config/git/ignore (удобно для IDE-мусора, чтобы не дублировать в каждом репо).
  • Локальные исключения только для себя: .git/info/exclude (не попадёт в репозиторий).
up: Просмотров: 275
Материал помог? Оценка помогает находить устаревшие и спорные решения.

Комментарии

0

Нашли ошибку или хотите дополнить материал?

Комментариев пока нет.Можно первым дополнить материал или сообщить об ошибке.
Telegram