Як налаштувати .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.