Один .gitignore для всего вашего технологического стека
Этот генератор .gitignore объединяет готовые шаблоны для языков программирования, фреймворков, инструментов сборки, редакторов и операционных систем в один аккуратный файл. Выберите Node и Next.js, добавьте macOS, Windows и VS Code — и вы получите файл .gitignore с четко разделенными секциями, без дублирующихся правил и с местом для собственных строк. Шаблоны сформированы на основе официальной коллекции github/gitignore, а сборка происходит прямо в вашем браузере.
Как создать файл .gitignore
- 1Введите язык, фреймворк, редактор или ОС в строке поиска —
python,unity,jetbrains— и нажмите на плашку для добавления. Нажатие Enter добавляет первое совпадение. - 2Комбинируйте столько шаблонов, сколько нужно вашему проекту. Стандартный веб-проект обычно включает язык, фреймворк, редактор кода и операционную систему.
- 3Добавьте пути к специфичным для проекта файлам в разделе Пользовательские строки, например
/uploads/или*.sqlite. - 4Скопируйте результат или нажмите Скачать в виде файла
.gitignoreи поместите его в корень вашего Git-репозитория.
Зачем нужен файл .gitignore
Файл .gitignore указывает файлы, которые Git не должен отслеживать: сторонние зависимости (node_modules/, vendor/), результаты сборки (dist/, target/), временные файлы, логи, настройки редакторов и секретные данные вроде .env. Их исключение уменьшает вес репозитория, делает diff чистым и защищает от случайной утечки учетных данных.
Файл действует исключительно на неотслеживаемые (untracked) файлы. Если файл уже был ранее закоммичен в репозиторий, добавление его в .gitignore не удалит его из истории; выполните git rm --cached <file> (или git rm -r --cached <dir>) и сделайте коммит, чтобы прекратить отслеживание, сохранив локальную копию.
Синтаксис шаблонов .gitignore
Порядок правил имеет значение: последнее совпавшее правило побеждает, поэтому исключения вроде !.vscode/settings.json размещаются после общего правила .vscode/*.
- *.log
- Шаблон без косой черты сопоставляется на любой глубине: игнорирует все файлы .log в репозитории.
- /build
- Косая черта в начале привязывает шаблон к корневой папке .gitignore, игнорируя только верхнеуровневую папку build.
- dist/
- Косая черта в конце соответствует исключительно каталогам, не затрагивая файл с именем dist.
- **/temp
- Две звездочки соответствуют любому количеству каталогов: папка temp в корне или на любой вложенности.
- !.env.example
- Восклицательный знак в начале отменяет исключение для файла. Не может вернуть файл, если его родительский каталог полностью исключен.
- # комментарий
- Строки, начинающиеся с #, считаются комментариями; пустые строки служат разделителями. Используйте обратный слэш перед # или ! для буквального соответствия.
Как объединяются шаблоны
Каждый шаблон оформляется в виде секции с заголовком ### Название ###. При включенной опции Удалять повторяющиеся шаблоны правила, уже встретившиеся в предыдущих секциях, исключаются из последующих, а опустевшие комментарии очищаются. Инвертированные правила (с восклицательным знаком) остаются на своих местах, чтобы не нарушать логику исключений.
Шаблоны для смежных инструментов часто пересекаются — Node, Next.js и Vite игнорируют node_modules и логи —, поэтому дедупликация обычно сокращает объем файла на 20% и более.
Проектный, глобальный и локальный ignore
Коммитьте файл .gitignore в репозиторий, чтобы им пользовалась вся команда, и ограничьте его файлами самого проекта. Файлы вашей операционной системы — .DS_Store, Thumbs.db, папки редактора — лучше вынести в глобальный ignore с помощью git config --global core.excludesFile ~/.gitignore_global. Для правил, нужных только вам в одном конкретном репозитории, используйте файл .git/info/exclude, который никогда не коммитится.
Lock-файлы приложений (package-lock.json, poetry.lock, Cargo.lock) обязательно должны быть закоммичены для воспроизводимости сборок. Чтобы проверить, какое именно правило игнорирует файл, выполните git check-ignore -v path/to/file.
Защита конфиденциальных данных
Шаблон Env и секреты игнорирует файлы .env, закрытые ключи и файлы учетных данных, сохраняя при этом шаблон .env.example. Игнорирование защищает только будущие коммиты: если ключ уже попал в репозиторий, немедленно перевыпустите его, так как он останется в истории Git. Полезные инструменты: калькулятор chmod для настройки прав доступа и генератор robots.txt для поисковых ботов.
Часто задаваемые вопросы
- Куда нужно положить файл .gitignore?
- В корневой каталог вашего репозитория, рядом с папкой .git. Вы также можете размещать файлы .gitignore в подкаталогах — их правила будут действовать относительно этой папки.
- Почему Git продолжает отслеживать файл после добавления в .gitignore?
- .gitignore действует только на новые неотслеживаемые файлы. Выполните команду git rm --cached <file> (или git rm -r --cached <folder>) и сделайте коммит: Git перестанет отслеживать файл, не удаляя его с вашего компьютера.
- Нужно ли игнорировать package-lock.json или yarn.lock?
- Нет, для приложений их нужно коммитить. Lock-файлы фиксируют точные версии зависимостей для гарантии идентичности сборок на всех машинах.
- Стоит ли добавлять .vscode или .idea в .gitignore?
- Обычно только личные настройки. Шаблон VS Code игнорирует .vscode/*, но сохраняет общие settings.json, tasks.json и launch.json; шаблон JetBrains игнорирует всю папку .idea целиком.
- Как настроить игнорирование .DS_Store во всех проектах сразу?
- Добавьте его в глобальный файл ignore: создайте файл ~/.gitignore_global со строкой .DS_Store и выполните команду git config --global core.excludesFile ~/.gitignore_global.
- Как игнорировать всё содержимое папки, кроме одного файла?
- Игнорируйте содержимое, а не саму папку, а затем добавьте исключение: folder/*, а следующей строкой !folder/keep.txt. Правило folder/ исключит всю папку целиком, и восстановить отдельный файл не удастся.
- Откуда взяты эти шаблоны?
- Они сформированы на основе официального репозитория github/gitignore под лицензией CC0 с удалением устаревших строк. Проверьте итоговый файл на соответствие структуре вашего проекта.