Как игнорировать .env, сохранив .env.example?

Не храните реальные значения в Git. Делитесь проверенным .env.example с заполнителями. Перед широким правилом проверьте соглашения фреймворка.

1. Исключите локальные значения, сохраните пример

Поместите правила в корневой .gitignore. Они охватывают .env и корневые файлы с началом .env., затем возвращают .env.example. Они не охватывают service.env и вложенные каталоги.

Проверьте .env.example перед коммитом: имя примера не гарантирует безопасность значений. Используйте заполнители и опишите обязательные переменные.

/.env
/.env.*
!/.env.example

2. Проверьте все три случая

При наличии неотслеживаемых .env, .env.local и .env.example проверьте совпадающие правила:

git check-ignore -v -- .env .env.local .env.example

!/.env.example означает возврат примера. Статус должен показать его, но не два файла локальных значений. Исключённый родитель или более позднее правило могут изменить результат.

git status --short --untracked-files=all -- .env .env.local .env.example

Почему ! не сохраняет файл в игнорируемом каталоге?

3. Обработайте ранее отслеживаемые значения

Проверьте, отслеживает ли Git один из файлов локальных значений:

git ls-files -- .env .env.local

Если пути появились, следуйте статье об отслеживаемых файлах и согласуйте изменения. .gitignore не удаляет старые коммиты. При утечке сначала отзовите или замените учётные данные, затем следуйте рекомендациям GitHub: удаление текущего файла не стирает историю.

Как игнорировать файлы, которые Git уже отслеживает?

Точное поведение и подробности описаны в официальных источниках: Документация Git · Частые вопросы о Git · Рекомендации GitHub при утечке конфиденциальных данных