Инструмент для разработчиков

Генератор .gitignore

Выберите язык программирования, фреймворк и IDE — получите готовый файл .gitignore с подробными комментариями на русском языке. Скопируйте или скачайте за секунду.

30+
Технологий
Языки, фреймворки, IDE и ОС
8
Готовых пресетов
Популярные комбинации в один клик
100%
На русском
Комментарии и описания
0 сек
Генерация
Мгновенный результат

Что такое .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/.

ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Файл .gitignore указывает Git, какие файлы и директории не нужно отслеживать в системе контроля версий. Он позволяет исключить зависимости (node_modules, vendor), артефакты сборки (dist, build), секретные данные (.env), файлы ОС (.DS_Store) и настройки IDE (.idea, .vscode). Без .gitignore репозиторий засоряется ненужными файлами, увеличивается в размере и становится небезопасным.
Основной файл .gitignore размещается в корневой директории репозитория. Но вы можете создавать дополнительные .gitignore файлы в любых поддиректориях — правила в них будут действовать только для содержимого этой папки и вложенных. Также существует глобальный .gitignore (обычно ~/.gitignore_global), который применяется ко всем вашим репозиториям.
Файл .gitignore влияет только на файлы со статусом «untracked» (не отслеживаемые). Если файл уже был добавлен в Git и закоммичен, .gitignore его не затронет. Чтобы прекратить отслеживание, выполните команду «git rm --cached filename» — это удалит файл из индекса Git, но оставит на диске. После этого закоммитьте изменение.
Да, .gitignore должен быть в репозитории и отслеживаться Git. Это позволяет всем участникам команды использовать одни и те же правила игнорирования. Лучшая практика — добавить .gitignore в самый первый коммит проекта, ещё до добавления зависимостей.
Используйте файл .git/info/exclude — он работает как .gitignore, но не отслеживается и не виден другим разработчикам. Также можно настроить глобальный .gitignore через команду «git config --global core.excludesfile ~/.gitignore_global» для правил, общих для всех ваших проектов (например, файлы вашей IDE).
Команда «git check-ignore -v filename» покажет, какое именно правило и из какого файла .gitignore применяется к данному файлу. Это незаменимо для отладки сложных конфигураций с несколькими уровнями .gitignore и исключениями через восклицательный знак (!).
Немедленно смените все скомпрометированные ключи и пароли. Добавление файла в .gitignore не удалит его из истории. Для полной очистки используйте инструмент BFG Repo-Cleaner или «git filter-branch». После очистки нужно сделать force push, а все участники должны пересоздать свои локальные копии.
Одинарная звёздочка (*) соответствует любым символам внутри одной директории (не пересекает /). Двойная звёздочка (**) соответствует любому количеству вложенных директорий. Например, «*.log» найдёт все .log файлы в текущей папке, а «**/*.log» — во всех папках на любом уровне вложенности.
Нет, lock-файлы должны быть в репозитории. Они фиксируют точные версии всех зависимостей и гарантируют, что у всех разработчиков и в CI/CD будут установлены одинаковые версии пакетов. Игнорирование lock-файлов может привести к ошибкам «у меня работает, а у тебя нет».
Да, но учтите: если вы добавляете новые правила в .gitignore, ранее закоммиченные файлы продолжат отслеживаться. Скопируйте результат генератора в ваш .gitignore, затем выполните «git rm -r --cached .» и «git add .» для переиндексации всех файлов с учётом новых правил. После этого закоммитьте изменения.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

Калькулятор технического долга: объём, SQALE, рефакторинг

Комплексный калькулятор технического долга: оценка объёма в часах и рублях, расчёт процентной ставки (стоимость бездействия), матрица приоритизации (impact vs effort), метрики качества кода (цикломатическая сложность, дупликация, покрытие тестами), план рефакторинга по спринтам, SQALE рейтинг A-E.

/technical-debt-calculator

Объединить PDF онлайн — без загрузки на сервер

Склейка PDF в браузере через pdf-lib. До 20 файлов, до 50 МБ каждый. Локально, без отправки на сервер (152-ФЗ).

/obyedinit-pdf-onlajn-besplatno

Сжать PDF онлайн — уменьшить размер локально

Сжатие PDF в браузере без потери качества. 3 уровня (object streams, удаление метаданных). До 50 МБ. Через pdf-lib, локально.

/szhat-pdf-onlajn-umenshit-razmer

Разделить PDF на страницы — извлечь нужные онлайн

Разделение PDF на страницы локально: каждая страница отдельным файлом, диапазон или группами. Через pdf-lib, без отправки на сервер.

/razdelit-pdf-na-stranicy-onlajn

JPG в PDF — конвертер с объединением

Конвертация JPG/PNG в PDF в браузере: до 30 картинок в один документ. Форматы A4/A3/Letter или подгонка под изображение.

/jpg-v-pdf-konverter

Повернуть страницы PDF онлайн

Поворот всех или указанных страниц PDF на 90/180/270° за миллисекунды. Lossless. Через pdf-lib, без отправки на сервер.

/povernut-pdf-stranitsy-onlajn

Водяной знак на PDF онлайн (кириллица)

Нанесение текстового знака («КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК») на все страницы PDF. Поддержка русского текста через Canvas. 4 положения, регулировка прозрачности.

/dobavit-vodyanoj-znak-na-pdf

Нумерация страниц PDF онлайн

Проставьте номера страниц PDF в браузере: 4 формата, 6 положений, пропуск титульной, кастомный старт. Поддержка кириллицы. Через pdf-lib + Canvas.

/numerovat-stranitsy-pdf-onlajn

PDF в JPG / PNG — конвертер страниц

Рендеринг каждой страницы PDF в картинку через pdfjs-dist (Mozilla). 4 уровня качества: 96 / 150 / 300 DPI и lossless PNG. До 50 МБ.

/pdf-v-jpg-konverter-onlajn

Извлечь текст из PDF онлайн

Извлечение текста из PDF в браузере через pdfjs-dist (Mozilla). Plain text, с разделителями страниц или JSON. Файлы не уходят на сервер.

/extract-text-iz-pdf-onlajn

Сжать JPG до 100 КБ для документов

Сжатие JPG до точного размера в КБ (50, 100, 200, 500, 1000) через бинарный поиск quality. Госуслуги, ЕГЭ, банки. Через browser-image-compression.

/szhat-jpg-onlajn-do-100kb

Удалить EXIF из фото — GPS и метаданные

Удаление EXIF (геолокация, модель камеры, дата) из JPEG. Сначала показывает что внутри, потом удаляет. 152-ФЗ. В браузере, без отправки.

/udalit-exif-iz-foto-online

Изменить размер фото в пикселях

Изменение размера JPG/PNG/WebP с сохранением пропорций. 6 пресетов (Full HD, HD, 1080×1080, 9:16). Через Canvas API, без сервера.

/izmenit-razmer-foto-onlajn-px-mb

WebP в JPG / PNG — конвертер онлайн

Конвертация WebP → JPG / PNG в браузере. До 30 файлов одновременно. Через Canvas API, без сервера. Поддержка Госуслуг и старых форм.

/webp-v-jpg-png-konverter

Повернуть фото — точно по градусам

Поворот картинки на любой угол (90°/произвольный) с превью. Цвет фона для уголков при произвольных углах. JPG/PNG/WebP. Через Canvas.

/povernut-foto-onlajn-besplatno