Как сохранять версии проекта, возвращаться назад — и почему не всё можно отменить.
⏱ ≈ 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. Что НЕ вернёт откат кода?
Верно. Git хранит только код. То, что ушло в реальный мир — данные в базе, письма пользователям, платежи — откат кода не отменит. Именно поэтому перед такими действиями нужно останавливаться и проверять.
4. Почему с гитом не страшно экспериментировать?
Верно. Страховка — это коммит. Пока есть коммит с рабочей версией, любой эксперимент обратим: одна команда агента — и код вернётся к точке «всё работало».
Куда мы идём
Программа курса — 7 блоков
1Как устроен вебСайт/приложение, HTTP, URL, DOM✓ есть
2Где живут данныеСостояние, хранилище, база данных✓ есть
3Как приложения общаютсяAPI, JSON, REST✓ есть
4Фронтенд-слойReact / Next / Vite, компоненты✓ есть
5Секреты и безопасностьГде вайб-кодеры горят чаще всего✓ есть
6Доставкаdev/prod, хостинг, домен/DNS/SSL✓ есть
7Работа с агентомЧитать ошибки, git, ТЗВы здесь · урок 1 из 4✓ идём