← Все вопросы

Что такое .gitignore и как сделать, чтобы git не отслеживал файлы?

Задан 6 месяцев назад1к просмотров2 ответа
10

В коммиты постоянно лезут лишние файлы — папка node_modules, .env с паролями, кэш. Как сказать git игнорировать определённые файлы и папки? Слышал про .gitignore, но не разобрался.

2 ответа

12
✓ Принятый ответ — помог автору

.gitignore — это текстовый файл со списком того, что git должен игнорировать: не показывать в status и не предлагать к коммиту.

Создай в корне проекта файл с именем .gitignore (именно с точкой в начале) и впиши туда шаблоны, по одному на строку:

node_modules/
.env
*.log
__pycache__/
.DS_Store
dist/

Что значат правила:

  • node_modules/ — игнорировать всю папку (слэш в конце = папка).
  • .env — конкретный файл.
  • *.log — все файлы с расширением .log (звёздочка = «любое имя»).
  • строка с # в начале — комментарий.

После создания .gitignore сам закоммить — он должен быть в репозитории, чтобы правила работали у всех в команде.

Очень частая ошибка: добавить файл в .gitignore, когда git его уже отслеживает. Тогда игнор не сработает — git продолжит видеть изменения. .gitignore действует только на новые, ещё не добавленные файлы. Если файл уже в репозитории, сначала убери его из отслеживания:

git rm --cached .env

и только потом он начнёт игнорироваться (а --cached оставит файл на диске).

4

Полезные детали:

  • Не пиши вручную с нуля — на gitignore.io / в шаблонах GitHub есть готовые .gitignore под Python, Node, Java и т.д.
  • Чтобы исключение из исключения: !важный.log оставит этот файл, даже если *.log игнорируется.
  • Проверить, почему файл игнорируется: git check-ignore -v имя_файла — покажет, какое правило сработало.

Главное правило безопасности: .env, ключи и пароли — всегда в .gitignore, чтобы не утекли на GitHub.

Ваш ответ

Войдите, чтобы ответить на вопрос.