# Что нельзя коммитить в Git

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/15-5-chto-nelzya-kommitit

В Git нельзя отправлять секреты: пароли, ключи и токены. Файл .gitignore прячет такие файлы, чтобы они не попали в репозиторий.

На уровне 5 ты научился отправлять код в Git, а на уровне 14 узнал про переменные окружения и секреты. Сейчас эти две темы встречаются: разберёмся, что **категорически нельзя** отправлять в репозиторий и как себя обезопасить.

## Секреты остаются дома

Git запоминает всё, что ты в него коммитишь, — и хранит это в истории навсегда. Поэтому есть вещи, которым в репозитории не место:

- **пароли** от баз данных и сервисов;
- **API-ключи** — те самые секретные строки с уровня 14;
- **файлы с настройками** вроде `secrets.env`, где лежат твои ключи.

Почему это важно? Если секрет попадёт в Git, его увидит каждый, у кого есть доступ к коду. А если ты ещё и отправишь репозиторий на GitHub — секрет окажется в облаке, и злоумышленник сможет им воспользоваться. Поэтому правило простое: **код коммитим, секреты — нет**.

## .gitignore — список «не трогать»

Чтобы Git не замечал секретные файлы, их имена пишут в специальный файл — `.gitignore`. Всё, что перечислено в нём, Git будет игнорировать: не отслеживать, не коммитить, не отправлять в облако.

Создать его проще простого:

```
echo "secrets.env" > .gitignore
```

Эта команда создаёт файл `.gitignore` и записывает внутрь строку `secrets.env`. Теперь Git «не видит» этот файл. Проверим, что внутри:

```
cat .gitignore
```

Ты увидишь строку `secrets.env` — значит, секрет под защитой.

В `.gitignore` можно перечислить много файлов и папок — по одному имени на строку. Часто туда добавляют `.env`, папку `node_modules` и временные файлы. Этот файл коммитить как раз **нужно** — он сам по себе не секрет, а лишь список того, что прятать.

## Попробуй

Создай файл `.gitignore` командой `echo "secrets.env" > .gitignore`, а потом загляни внутрь через `cat .gitignore`. Как только секрет окажется в списке игнорируемых — урок зачтётся. Подсказка ждёт под терминалом.
