Короткий ответ .gitignore указывает Git, какие файлы не нужно отслеживать; если .env с паролями попадёт в репозиторий, секреты окажутся во всей истории Git и у всех, кто имеет доступ, и их нужно считать скомпрометированными и ротировать, даже если файл позже удалить. Как это работает подробнее при git add/git status Git сверяется с шаблонами в .gitignore и не предлагает такие файлы к отслеживанию; это работает только для файлов, которые ещё никогда не были закоммичены. Пример кода Что использовать на практике Рекомендация. типичный .gitignore для Python включает .venv/, __pycache__/, .env, *.log; секреты передают через переменные окружения, а в репозиторий кладут только .env.example. Подводные камни Риск. добавить .env в .gitignore только после того, как он уже был закоммичен — файл всё равно остаётся в истории; нужно удалить его из истории и обязательно сменить скомпрометированные секреты.