Генератор .gitignore
Что такое .gitignore
Файл .gitignore указывает системе контроля версий Git, какие файлы и директории не нужно отслеживать. Он размещается в корне репозитория и содержит паттерны имён файлов. Всё, что подходит под эти паттерны, Git будет игнорировать при добавлении изменений, коммитах и отображении статуса.
Зависимости и пакеты
Папки node_modules, vendor, venv содержат тысячи файлов сторонних библиотек. Они воссоздаются одной командой (npm install, pip install) и не должны засорять репозиторий. Без .gitignore размер проекта может вырасти в сотни раз.
Секреты и .env файлы
Файлы .env, config/secrets.yml, credentials.json содержат API-ключи, пароли к базам данных и токены. Попадание таких данных в публичный репозиторий — одна из главных причин утечек. Файл .gitignore предотвращает это.
Артефакты сборки
Директории build, dist, target, out содержат скомпилированный код, который генерируется автоматически из исходников. Хранить их в Git бессмысленно: они занимают место, создают конфликты слияния и замедляют работу с репозиторием.
Как Git отслеживает файлы
Понимание модели отслеживания Git помогает правильно настроить .gitignore и избежать типичных ошибок при работе с репозиторием.
1Рабочая директория (Working Directory)
Все файлы на диске вашего проекта. Git может видеть их или не видеть. Новые файлы, не указанные в .gitignore, имеют статус «untracked». Файлы, перечисленные в .gitignore, Git полностью игнорирует — они не появляются ни в git status, ни в git diff.
2Индекс (Staging Area)
Промежуточная область, где собираются изменения перед коммитом. Команда git add помещает файл в индекс. Файлы .gitignore не могут попасть в индекс через git add ., но если файл уже отслеживается, .gitignore его не удалит.
3Репозиторий (Repository)
После коммита файлы навсегда сохраняются в истории Git. Если вы случайно закоммитили секретный файл, добавление его в .gitignore не удалит его из истории. Для полного удаления нужно использовать git filter-branch или BFG Repo-Cleaner.
4Важный нюанс: уже отслеживаемые файлы
Файл .gitignore действует только на новые файлы (untracked). Если файл уже в репозитории, добавление его в .gitignore не прекратит отслеживание. Нужно сначала убрать файл из индекса командой git rm --cached filename, а затем закоммитить изменение.
Зачем нужен .gitignore
Правильно настроенный .gitignore — основа чистого, безопасного и профессионального репозитория. Вот ключевые задачи, которые он решает.
Чистый репозиторий
Без .gitignore в репозиторий попадают тысячи файлов зависимостей (node_modules, vendor), временные файлы и кэш. Это увеличивает размер в десятки раз и замедляет клонирование.
Защита секретов
API-ключи, пароли баз данных, токены авторизации — всё это хранится в .env файлах. Один неосторожный git push в публичный репозиторий может привести к утечке данных и взлому.
CI/CD пайплайны
Конвейеры сборки и деплоя (GitHub Actions, GitLab CI, Jenkins) работают быстрее, когда репозиторий содержит только исходный код без артефактов сборки и кэша.
Командная работа
Конфигурации IDE (.idea, .vscode) у каждого разработчика свои. Без .gitignore они создают постоянные конфликты слияния и засоряют историю коммитов.
Быстрый git status
Когда Git не нужно проверять тысячи файлов в node_modules, команды git status и git diff работают на порядок быстрее, особенно на больших проектах.
Кроссплатформенность
macOS создаёт .DS_Store, Windows — Thumbs.db. Без .gitignore эти системные файлы попадают в репозиторий и мешают разработчикам на других ОС.
Синтаксис .gitignore/ полное руководство
Файл .gitignore использует простой, но мощный синтаксис паттернов. Каждая строка — это одно правило. Пустые строки и комментарии (начинающиеся с #) игнорируются.
Точное имя файла
Укажите имя файла — Git будет игнорировать его в любой директории проекта. Для файла только в корне используйте слеш в начале.
.env # игнорировать .env в любой директории
/.env # только в корне репозитория
debug.log # любой debug.log в любой папкеWildcard-паттерны (* и **)
Звёздочка * заменяет любые символы (кроме /). Двойная звёздочка ** заменяет любое количество директорий.
*.log # все .log файлы
*.py[cod] # .pyc, .pyo, .pyd файлы
**/build/ # папка build на любом уровне
doc/**/*.pdf # все PDF в doc/ и подпапкахДиректории (слеш в конце /)
Слеш в конце паттерна означает, что правило применяется только к директориям, а не к файлам с таким же именем.
node_modules/ # игнорировать папку node_modules
build/ # игнорировать папку build
logs/ # игнорировать папку logsИсключения (отрицание !)
Восклицательный знак отменяет игнорирование для конкретного файла. Полезно, когда нужно исключить всё кроме одного файла.
*.log # игнорировать все логи
!important.log # но не important.log
.vscode/* # игнорировать всё в .vscode
!.vscode/settings.json # кроме settings.jsonКомментарии (#)
Строки, начинающиеся с #, являются комментариями и игнорируются. Используйте их для документирования правил.
# Зависимости
node_modules/
# Переменные окружения
.env
.env.localСовет: всегда добавляйте .gitignore в первый же коммит проекта. Это проще, чем потом удалять уже отслеживаемые файлы из истории Git.
Глобальный .gitignore: файлы ОС (.DS_Store, Thumbs.db) лучше добавить в глобальный ~/.gitignore_global, чтобы не дублировать в каждом проекте.
Популярные шаблоны по языкам
У каждого языка и фреймворка свои особенности: разные пакетные менеджеры, структуры сборки и конфигурационные файлы. Вот самые распространённые паттерны.
JavaScript / Node.js
React, Vue, Next.js, ExpressГлавное правило — node_modules/ (часто 200+ МБ). Добавляйте .env для переменных окружения, dist/ и build/ для артефактов сборки, coverage/ для отчётов тестов. Для Next.js также .next/ и out/. Yarn и pnpm имеют свои специфичные файлы для игнорирования.
Python
Django, Flask, FastAPIБайт-код Python (__pycache__, *.pyc) — основная цель. Виртуальные окружения (venv/, .venv/) могут весить гигабайты. Для Django — db.sqlite3, media/, staticfiles/. Не забудьте .mypy_cache/, .pytest_cache/ и Jupyter-чекпоинты (.ipynb_checkpoints/).
Java
Maven, Gradle, Spring BootСкомпилированные .class файлы, каталоги target/ (Maven) и build/ (Gradle). Пакеты .jar, .war, .ear тоже игнорируются. Для Spring Boot добавьте application-local.yml. Файлы IDE: .idea/, *.iml, .classpath, .project, .settings/.
Go / Rust
Современные компилируемые языкиGo: бинарные файлы (*.exe, *.dll, *.so), директория vendor/ (если используете вендоринг). Rust: каталог target/ (сборки Cargo) — может весить несколько гигабайт. Оба языка требуют минимальный .gitignore, так как имеют встроенные системы управления зависимостями.
Советы по работе с .gitignore
Практические рекомендации, которые помогут избежать типичных проблем при настройке игнорирования файлов в Git.
1Добавляйте .gitignore сразу
Создавайте .gitignore до первого коммита. Если секретные данные или зависимости уже попали в историю, простое добавление .gitignore не поможет — файлы останутся в прошлых коммитах и могут быть извлечены.
2Используйте глобальный .gitignore
Файлы ОС (.DS_Store, Thumbs.db) и настройки IDE лучше добавить в глобальный файл: git config --global core.excludesfile ~/.gitignore_global. Это избавляет от дублирования в каждом проекте.
3Проверяйте правила
Команда git check-ignore -v filename покажет, какое правило .gitignore применяется к конкретному файлу. Полезно для отладки сложных конфигураций, когда файл игнорируется неожиданно.
4Не игнорируйте lock-файлы
package-lock.json, yarn.lock, Pipfile.lock, Gemfile.lock, go.sum — эти файлы фиксируют точные версии зависимостей и должны быть в репозитории. Без них у разных разработчиков могут установиться разные версии пакетов.
5Используйте .env.example
Вместо .env (который игнорируется) создайте .env.example с пустыми значениями и закоммитьте его. Новые участники проекта скопируют его в .env и заполнят своими значениями. Это стандартная практика в командной разработке.
6Удаление из отслеживания
Если файл уже закоммичен, добавление в .gitignore не поможет. Выполните git rm --cached file для удаления из индекса (файл останется на диске), затем закоммитьте. Для папки: git rm -r --cached folder/.
Часто задаваемые вопросы

Лиана Арифметова
Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».
Был ли этот калькулятор полезен?
Отказ от ответственности
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.
Похожие инструменты
Генератор Cron выражений (Crontab)
Создать и расшифровать Cron выражения онлайн. Удобный генератор расписания для скриптов и серверов. Перевод на понятный язык.
Агрохимический NPK-калькулятор
Расчёт доз удобрений (NPK) по культуре, площади и типу почвы. Аммиачная селитра, мочевина, суперфосфат, нитроаммофоска.
Калькулятор международного налогообложения (СИДН, КИК)
Расчёт налога у источника по СИДН, налогообложение КИК (ст. 25.13 НК РФ), тест налогового резидентства и зачёт иностранного налога.
Генератор Cubic Bezier (CSS transition)
Интерактивный генератор кривых Безье для CSS анимаций. Визуальная настройка плавности переходов, пресеты (ease, linear) и копирование кода.
Калькулятор отпускных
Сумма отпускных по ТК РФ. Средний дневной заработок, количество дней, НДФЛ. Для бухгалтеров.
Калькулятор жалюзи и рулонных штор
Расчёт стоимости жалюзи и рулонных штор по размерам окна.
Калькулятор Responsive Margin/Padding (Clamp generator)
Генератор CSS функции clamp() для адаптивных отступов и шрифтов. Создайте отзывчивый дизайн (fluid spacing) от мобильных до десктопа онлайн.
Медицинский калькулятор: риски, дозы, вакцинация
Комплексный инструмент для врачей и пациентов. Шкалы CHA2DS2-VASc и Wells, расчет СКФ (eGFR CKD-EPI) и календарь прививок.
Калькулятор туриста: бюджет, валюта и виза
Конвертер валют, расчет бюджета поездки и стоимости визы/страховки. Универсальный инструмент планирования путешествий.
Калькулятор QTc (коррекция интервала QT)
Рассчитайте корригированный интервал QT (QTc) по формулам Базетта, Фредерика, Фрамингема и Ходжеса. Оценка риска аритмии.
Калькулятор среднего заработка
Расчёт среднего заработка для отпускных, больничных и командировочных. По Постановлению 922.
Калькулятор магнитного поля
Магнитная индукция прямого провода, соленоида и сила Лоренца. Результат в Тл, мТл, мкТл.
Калькулятор численных методов: RK4, Ньютон, интеграл
Решение дифференциальных уравнений (RK4), поиск корней (Ньютон) и численное интегрирование (Симпсон).
Калькулятор банкета
Расчёт еды и напитков на количество гостей. Нормы мяса, салатов, алкоголя на свадьбу, юбилей, корпоратив, день рождения.
Калькулятор нагрузок на конструкции: постоянные, временные, ветер, снег
Расчёт нагрузок по СП 20.13330: постоянные, полезные, ветровые, снеговые. Комбинации нагрузок с коэффициентами надёжности.