git и GitHub: версии, откат, передача кода

Ты попросил агента добавить в main.py поздравление с днём рождения. Он справился, но заодно «улучшил» подсчёт дней до Нового года, и тот стал врать на единицу. Вчерашней рабочей версии нет: файл перезаписан. С заказчиком так же: Ольга из «Кодиума» пишет, что бот вчера работал, а сегодня молчит, и надо быстро вернуть, как было.

Чему научишься в этом уроке:
• сохранять версии проекта в git;
• откатить ошибку агента к рабочей версии;
• выложить код на GitHub и передать его заказчику.

git как машина времени

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

Шаг 1. Представься git

Один раз на компьютере укажи имя и почту, они будут стоять в подписи коммитов. В PowerShell:

git config --global user.name "Твоё Имя"
git config --global user.email "твоя@почта"

Шаг 2. Первый коммит руками агента

Открой сессию Claude Code в папке moy-pervyy-proekt из прошлого урока и напиши:

«Сделай из этой папки git-репозиторий и сохрани текущее состояние коммитом с подписью «первая версия: приветствие и дни до Нового года». Покажи историю коммитов.»

Агент выполнит команды git init, git add и git commit и покажет результат. В режиме Manual он спросит разрешение на каждую команду: читай, что именно он запускает. Проверить историю можешь и сам:

git log --oneline

Каждая строка: это коммит: короткий номер и подпись.

Шаг 3. Ещё две версии и откат

  1. Попроси агента добавить поздравление, если сегодня день рождения пользователя (пусть программа спросит дату). Проверь запуском и попроси сохранить коммитом «поздравление с днём рождения».
  2. Попроси ещё одну правку, например вывести дни до лета, и сохрани третьим коммитом.
  3. Допустим, третья правка оказалась лишней. Напиши агенту: «Отмени последний коммит через git revert и покажи историю». Агент создаст новый коммит, который возвращает файлы к предыдущему состоянию, а старые версии останутся в истории.

Почему revert, а не удаление коммита: история не теряется, и через месяц ты увидишь, что было и почему от этого отказались. Если агент предложит команду с —hard или —force, откажись и спроси вариант без них: такие команды стирают несохранённую работу безвозвратно. Самая частая такая команда: git reset —hard. Слово reset значит «перевести папку к старому коммиту», а —hard выбрасывает всё, что не сохранено.

Нужные скриншоты: 1) терминал с ответом git log --oneline: четыре строки, сверху коммит Revert третьей правки, ниже «дни до лета», «поздравление с днём рождения», «первая версия»; 2) запрос разрешения Claude Code на команду git commit в режиме Manual; 3) GitHub Desktop: окно публикации репозитория с включённой галочкой приватности; 4) страница приватного репозитория на GitHub со списком файлов.

Шаг 4. GitHub: код в облаке и у заказчика

GitHub: сайт, где хранят репозитории. Бесплатный план GitHub Free стоит 0 $ и разрешает сколько угодно публичных и приватных репозиториев. Приватный видишь только ты и те, кого пригласишь. Для заказчика это удобный способ передать код: ты приглашаешь Ольгу в репозиторий, и у неё всегда последняя версия с историей. Платные планы, например Team для команд с общими правами доступа, для работы с одним заказчиком не нужны.

  1. Зарегистрируйся на github.com.
  2. Поставь GitHub Desktop с desktop.github.com/download: так не придётся набирать команды отправки.
  3. В GitHub Desktop добавь существующую папку moy-pervyy-proekt и опубликуй её как приватный репозиторий.
  4. Открой репозиторий на сайте и проверь, что файлы и история на месте.
Доступ к GitHub из России с мая 2026 года бывает нестабильным: отдельные страницы не открываются, отправка кода может пройти не с первого раза. Локальный git это не затрагивает, все откаты работают без интернета. Если GitHub не открывается, сохрани репозиторий только локально; российские площадки вроде GitVerse или GitFlic мы пока не проверяли.

Если не получилось

  • git пишет «Please tell me who you are»: не выполнен шаг 1. Укажи имя и почту и повтори коммит.
  • «git не распознано»: git не установлен или окно открыто до установки. Открой новое окно, проверь git —version.
  • Агент сохранил коммит в другой папке. Попроси его выполнить git status и показать, в какой папке он работает.
  • GitHub Desktop не может отправить код. Повтори через несколько минут; если не выходит, сдавай миссию без GitHub.

Контрольный вопрос. Вчера бот «Кодиума» работал, сегодня после правки агента молчит. В git три коммита, последний: вчерашняя правка агента. Что делаешь?

АУдаляю папку и собираю бота заново
БПравлю код руками, пока не заработает
ВЖду, вдруг само пройдёт
ГПрошу агента отменить последний коммит через git revert и проверяю бота

Подсказка: Какой способ возвращает рабочую версию и сохраняет историю?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Агент предлагает выполнить git reset —hard, чтобы «быстро всё вернуть». Как поступишь?

АСоглашусь, раз агент предложил
БОткажусь и попрошу вариант без —hard, например git revert
ВПереключусь в Auto, чтобы не спрашивал
ГУдалю git из проекта

Подсказка: Что урок говорит про команды с —hard и —force?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Ты хочешь передать код Ольге, но не показывать его всем. Как это сделать на GitHub Free?

АКупить план Team
БВыложить публичный репозиторий
ВОпубликовать приватный репозиторий и пригласить Ольгу
ГОтправить ей пароль от своего аккаунта

Подсказка: Сколько приватных репозиториев даёт GitHub Free?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Задание. МИССИЯ «Три версии и откат». В папке moy-pervyy-proekt сделай три коммита (первая версия, поздравление, третья правка) и отмени третий через git revert. Принято, если: приложен снимок ответа git log —oneline, где видно минимум 4 коммита и верхний начинается со слова Revert; снимок запуска программы после отката, где третьей правки уже нет. По желанию: ссылка на приватный репозиторий на GitHub (если GitHub не открывается, напиши об этом одной фразой, миссия засчитывается без ссылки).

Подсказка: Если в истории не 4 строки, попроси агента показать git status: возможно, последняя правка не сохранена коммитом.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Что дальше

Версии сохраняются, откат работает. В следующем уроке напишем для проекта памятку CLAUDE.md и научимся ставить задачи по формуле, чтобы агент ошибался реже.

Итог:
• каждая рабочая версия сохраняется коммитом с понятной подписью;
• ошибку агента откатываешь через git revert, история остаётся;
• код можно передать заказчику через приватный репозиторий GitHub, а при перебоях он живёт в локальном git.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева