Как настроить .gitignore и что туда добавлять?
Файл .gitignore указывает Git, какие файлы и директории игнорировать — не отслеживать и не включать в коммиты. Это критически важно для чистоты репозитория.
Что добавлять в .gitignore: файлы сборки и артефакты (node_modules/, dist/, build/, *.o, *.class), файлы зависимостей (vendor/, package-lock.json — зависит от стратегии команды), файлы IDE и редакторов (.idea/, .vscode/, *.swp), файлы операционной системы (.DS_Store, Thumbs.db), файлы с секретами (.env, config/local.json, *.pem, *.key), файлы логов (*.log, logs/) и временные файлы (*.tmp, *.bak).
Синтаксис: каждая строка — правило. Звёздочка заменяет любое количество символов: *.log игнорирует все log-файлы. Слэш в конце означает директорию: node_modules/ игнорирует папку целиком. Восклицательный знак отменяет игнорирование: !important.log включит файл, даже если *.log его игнорирует. Двойная звёздочка — рекурсивный путь: logs/**/*.tmp игнорирует .tmp-файлы на любой глубине внутри logs/.
Структура: .gitignore в корне репозитория применяется ко всему проекту. Файл .gitignore в поддиректории добавляет правила для этой директории. Глобальный .gitignore (git config --global core.excludesfile ~/.gitignore_global) применяется ко всем проектам пользователя — удобно для файлов OS и IDE.
Шаблоны: сайт gitignore.io (или github.com/github/gitignore) содержит готовые шаблоны для языков и фреймворков. Для Node.js проекта: node_modules/, dist/, .env, .env.local, npm-debug.log*. Для Python: __pycache__/, *.pyc, .venv/, .env.
Важно: .gitignore не удаляет файлы, уже отслеживаемые Git. Если файл уже в репозитории, добавление его в .gitignore не поможет — нужно сначала git rm --cached <файл>, затем закоммитить удаление, и только потом добавить в .gitignore.