Правила исключения файлов

Генератор .gitignore

Соберите правила для языка, редактора и операционной системы. Проверьте исключения и сохраните .gitignore, чтобы лишние файлы не попадали в коммиты.

Правила исключения файловСоздание в браузере
Готовая комбинация

01 Выберите шаблоны

Языки и фреймворки
Редакторы
Операционные системы
Дополнительные правила

По одному правилу на строку. Порядок и пробелы в конце сохраняются.

02 .gitignore

Шаблонов: 3 · Строк: 23

Проверьте правила и сохраните в корне репозитория либо объедините с существующим файлом. Уже отслеживаемые файлы не затрагиваются.

С чего начать файл .gitignore

Сначала исключите то, что сборка или установка зависимостей создадут заново: кеши, временные файлы, результаты компиляции. Для Next.js выберите также Node.js, а для Java — используемую систему сборки, Maven или Gradle.

Встроенные 18 шаблонов — короткая основа для настройки, а не полная копия коллекции GitHub. Генератор не анализирует репозиторий. Скачайте .gitignore с точкой в начале имени, проверьте содержимое и объедините его с уже существующими правилами.

Почему настройки редактора исключаются не целиком

В папках VS Code и JetBrains может храниться общая конфигурация команды. Шаблоны исключают только отдельные личные данные и историю работы. Правила, нужные лишь на вашем компьютере, можно поместить в .git/info/exclude.

Файлы фиксации зависимостей, включая package-lock.json и Cargo.lock, по умолчанию не исключаются. Решение об их хранении зависит от экосистемы и от того, выпускаете вы приложение или библиотеку.

Примеры для трёх конфигураций

Проект Next.js

Зависимости Node.js, результаты Next.js и метаданные macOS. Файлы фиксации версий остаются.

Вернуться к генератору
# Создано генератором Gitignore от LightNode
# Проверьте базовые правила перед добавлением в проект.

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-store/
coverage/
.nyc_output/

# Next.js
.next/
out/
.vercel/
*.tsbuildinfo

# macOS
.DS_Store
._*
.Spotlight-V100/
.Trashes/

Окружение Python

Окружения и кеши Python, история VS Code и резервные копии Linux.

Вернуться к генератору
# Создано генератором Gitignore от LightNode
# Проверьте базовые правила перед добавлением в проект.

# Python
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
*.egg-info/

# VS Code
.history/
*.vsix

# Linux
.Trash-*/
*~

Java и IntelliJ

Maven и Gradle, личные данные JetBrains и метаданные Windows. Уберите неиспользуемую систему сборки.

Вернуться к генератору
# Создано генератором Gitignore от LightNode
# Проверьте базовые правила перед добавлением в проект.

# Java / Maven
*.class
target/

# Gradle
.gradle/
build/

# JetBrains
.idea/workspace.xml
.idea/tasks.xml
.idea/shelf/
.idea/httpRequests/

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

Вопросы о правилах исключения

Почему .gitignore не работает с уже добавленным файлом?

Игнорирование не прекращает отслеживание. Проверьте правило командой git check-ignore -v --no-index path/to/file. Если файл действительно нужно убрать из-под контроля версий, git rm --cached -- path/to/file подготовит удаление из репозитория, сохранив локальную копию. Проверьте изменение перед коммитом.

Как оставить один файл в каталоге логов?

После /logs/* добавьте !/logs/keep.log. Не исключайте сам родительский каталог правилом /logs/: иначе повторно включить файл внутри него нельзя.

Зачем сохранять повторяющиеся строки?

При одинаковом приоритете действует последнее совпавшее правило. Поэтому шаблоны идут в фиксированном порядке, свои правила добавляются в конец, а дубликаты не удаляются. Смена комбинации сохраняет свой текст; очистка удаляет и текст, и выбор.

Можно ли оставить образец .env?

Шаблон окружения исключает .env и .env.*, но оставляет .env.example и .env.sample. В образцах должны быть только условные значения. Старые коммиты и уже попавшие в них секреты эти правила не очищают.

Отправляется ли содержимое на сервер?

Генерация выполняется в браузере без загрузки репозитория и без API генерации. Свои правила не сохраняются постоянно и не включаются в URL.

Официальная документация Git