Что такое .gitignore и как сделать, чтобы git не отслеживал файлы?
В коммиты постоянно лезут лишние файлы — папка node_modules, .env с паролями, кэш. Как сказать git игнорировать определённые файлы и папки? Слышал про .gitignore, но не разобрался.
2 ответа
.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 оставит файл на диске).
Полезные детали:
- Не пиши вручную с нуля — на gitignore.io / в шаблонах GitHub есть готовые
.gitignoreпод Python, Node, Java и т.д. - Чтобы исключение из исключения:
!важный.logоставит этот файл, даже если*.logигнорируется. - Проверить, почему файл игнорируется:
git check-ignore -v имя_файла— покажет, какое правило сработало.
Главное правило безопасности: .env, ключи и пароли — всегда в .gitignore, чтобы не утекли на GitHub.