Блок 7 · Урок 1 из 4

Git и откат: машина времени для кода

Как сохранять версии проекта, возвращаться назад — и почему не всё можно отменить.

≈ 7 минут 🕹 git, версии, обратимость 🎯 цель: понимать «давай закоммитим», «откатимся», «сделаю в ветке» и знать, где отката нет

Зачем это вам

Агент постоянно говорит «давай закоммитим», «откатимся на прошлый коммит», «сделаю в отдельной ветке», «это уже в гите», «это необратимо». Без понимания этих фраз вы не знаете: безопасно ли разрешить агенту что-то поменять, можно ли будет вернуться назад, и почему агент иногда предупреждает — «осторожно, это уже не откатить». Этот урок даёт главное: не бояться экспериментов там, где есть откат, и вовремя останавливаться там, где отката нет.

Суть

Git — это история изменений кода, из которой всегда можно вернуться назад

Git (произносится «гит») — система контроля версий (version control): инструмент, который хранит полную историю изменений кода проекта и позволяет в любой момент вернуться к любой прошлой версии.

Три ключевых понятия, которые нужно знать как заказчику:

Коммит (commit) — сохранённая точка-снимок: фотография всего проекта на момент «сейчас работает», с коротким описанием («добавил форму», «починил оплату»). Каждый коммит имеет уникальный код — адрес, по которому к нему можно вернуться. Агент делает коммиты регулярно, особенно перед рискованными изменениями.1

Ветка (branch) — параллельная линия работы. Если агент хочет попробовать что-то новое — он создаёт отдельную ветку и работает там. Основная (рабочая) версия не трогается. Попытка провалилась — ветку выбрасывают, рабочая версия цела. Всё получилось — изменения вливают в основную.2

GitHub — онлайн-хранилище репозитория (репозиторий — папка с историей проекта в гите): копия вашего проекта и его истории в облаке. Это и резервная копия, и место для совместной работы с командой. GitHub ≠ Git: Git — инструмент, GitHub — сервис вокруг него.

📌 Коммитите часто — откатить можно будет к любой точке. Если агент давно ничего не коммитил, а что-то сломалось — откатиться дальше последнего коммита не получится. Хорошая привычка: попросить агента коммитить перед каждым крупным изменением.

Главное, что нужно знать

Что обратимо, а что — нет

Git хранит код. Не данные пользователей, не письма, не платежи — только код. Это определяет, что можно откатить, а что нет.

✓ Обратимо (код в гите)

Любое изменение кода, которое было закоммичено, можно вернуть. Сломали интерфейс — откат. Новая функция не заработала — откат. Именно поэтому с гитом можно экспериментировать без страха: есть точка сохранения — есть возврат.

✗ Необратимо (ушло наружу)

Удалённые данные в боевой базе. Отправленные письма и push-уведомления. Проведённые платежи. Опубликованные посты. Откат кода их не вернёт — они уже в реальном мире.

📌 Перед рискованным действием — пауза. Когда агент говорит «снесу и пересоздам базу», «запущу массовую рассылку», «проведу платёж» — это момент остановиться и спросить: это обратимо? Если нет — убедитесь, что всё верно, до выполнения.

Аналогия, которую можно пересказать

Точки сохранения в видеоигре

«Нажать "сохранить" в игре»— коммит: сохранённая точка проекта, к которой всегда можно вернуться
«Отдельный слот для опасного пути»— ветка: эксперимент, который не трогает рабочую версию
«Загрузиться с последнего сейва»— откат: вернуться к прошлому коммиту, когда всё работало
«Сейв не вернёт списанные деньги или письмо»— необратимое: прод-данные, рассылки, платежи откат кода не отменит

Git — это сохранения в игре. Коммит — нажать «сохранить»: в любой момент можно загрузиться с этой точки. Ветка — отдельный слот, где пробуете опасный путь, не портя основной. Сломали всё в бою — загрузились с последнего сейва, как не бывало. Но есть действия, которые сейв не отменяет: если игра отправила письмо вашему другу или списала реальные деньги — перезагрузка их не вернёт. Так и тут: код откатить можно, а удалённую боевую базу, отправленные письма и проведённые платежи — нет.

Запомните одно

Коммит — это страховка. Без коммита страховки нет.

Git даёт иллюзию, что «всё можно откатить» — но только то, что было закоммичено. Незакоммиченные изменения исчезают без следа. Поэтому правило простое: попросили агента сделать что-то важное — попросите сначала закоммитить текущее состояние. Тогда в любой момент можно вернуться к точке до эксперимента.

Что это даёт на практике

Фраза агента → что он имеет в виду

«Давай закоммитим»
Сохраним рабочую точку, чтобы можно было вернуться, если что-то пойдёт не так.
«Откатимся на прошлый коммит»
Вернём код к последней сохранённой рабочей версии — как будто новых изменений не было.
«Сделаю в отдельной ветке»
Попробую новое в изолированном «слоте», не трогая рабочую версию. Не понравится — выброшу ветку.
«Это необратимо»
Откат кода не спасёт: данные, письма, платежи назад не вернуть. Нужно убедиться до, не после.

Git — система контроля версий: хранит полную историю изменений кода проекта.

Коммит (commit) — сохранённая точка-снимок проекта с описанием, к которой можно вернуться.

Ветка (branch) — параллельная линия работы для экспериментов, которая не трогает рабочую версию.

GitHub — онлайн-хранилище репозитория (копия истории проекта в облаке) и платформа для совместной работы.

Необратимое действие — то, что откат кода не отменит: удалённые данные в базе, отправленные письма, проведённые платежи.

Проверьте себя

Четыре вопроса с мгновенной проверкой

1. Что такое коммит?

2. Зачем нужна ветка (branch)?

3. Что НЕ вернёт откат кода?

4. Почему с гитом не страшно экспериментировать?

Куда мы идём

Программа курса — 7 блоков