Перейти к содержимому
TelegramGitHub

Git и AI-агенты

AI-агенты (Claude Code, Codex, Cursor) пишут код сами. Они меняют много файлов за один запуск. Вы не успеваете читать всё по ходу работы.

Git превращает этот поток изменений в то, что можно проверить. Без Git работа с агентом — это риск. С Git — это обычная работа с ревью.

ПроблемаЧто делает Git
Агент изменил 15 файлов. Что именно?git status и git diff показывают каждую строку
Агент сломал рабочий кодgit restore . возвращает всё. Или git revert отменяет коммит
Не знаю, какую версию просить исправитьКаждый шаг — отдельный коммит с понятным сообщением
Агент мог удалить нужный файлgit status показывает удалённые файлы. git restore возвращает их
Хочу попробовать идею и не рисковатьОтдельная ветка. Не понравилось — удалили ветку
  1. Начинайте с чистого репозитория. Перед запуском агента выполните git status. Все свои правки закоммитьте. Тогда всё, что появилось потом, сделал агент.
  2. Одна задача — одна ветка. Не давайте агенту работать в main.
  3. Смотрите diff до commit. git diff — главный инструмент. Агент ошибается. Читайте изменения, как чужой Pull Request.
  4. Коммитьте маленькими шагами. Так проще откатить один шаг, а не всё.
  5. Агент не должен видеть секреты. .env и ключи должны быть в .gitignore. Не вставляйте пароли в чат с агентом.
  6. Оформляйте результат как Pull Request. Коллеги читают его так же, как код человека.

Агент пишет правдоподобный код. Он может быть неверным. Поэтому проверки должны быть автоматическими.

  • Чем больше тестов и проверок в CI, тем безопаснее давать агенту больше свободы.
  • Красный CI — сигнал для агента: «исправь». Агент читает лог ошибки и чинит код сам.
  • Зелёный CI не гарантирует правильную логику. Но он ловит ошибки синтаксиса, пропавшие столбцы, дубли и пустые результаты.

Хорошая практика: обложите проект тестами и проверками в CI и запускайте их при каждом Pull Request. Агент делает работу, CI проверяет, человек делает ревью.

задача → агент пишет код в ветке → commit → push → CI (тесты) → ревью человека → merge

CD автоматически выкладывает код. Он повышает цену ошибки. Правило простое:

  • Агент никогда не пушит напрямую в main и не запускает выкладку в продакшен.
  • Выкладка идёт только после merge Pull Request с зелёным CI и approve человека.
  • Защита main из урока CI/CD закрывает эту дыру.
Окно терминала
git switch -c add-refunds # ветка под задачу
git status # чисто? значит, всё новое сделал агент
# ... агент работает ...
git status # какие файлы изменились
git diff # что именно изменилось
git add models/refunds.sql
git commit -m "Add refunds model" # хороший шаг сохраняем
git restore models/revenue.sql # лишнюю правку агента откатываем
git push -u origin add-refunds # Pull Request и CI

Подробнее про агентов: Claude Code 101 и Codex 101.

В репозитории sql-reports создайте ветку agent-task. Попросите агента (Claude Code, Codex или другого) добавить models/orders_by_status.sql с подсчётом заказов по статусам.

Проверка: агент создал файл. git status показывает его как новый.

Посмотрите результат: git status и git diff. Прочтите запрос. Найдите хотя бы одну вещь, которую вы бы изменили.

Проверка: вы можете сказать, что агент сделал и что вы бы поправили.

Если агент поменял файлы, которые вы не просили трогать, верните их. Закоммитьте только нужный файл.

Проверка: в коммите один файл. git status не показывает лишних изменений.

Решение
Окно терминала
git restore <лишний файл>
git add models/orders_by_status.sql
git commit -m "Add orders by status model"

Отправьте ветку и откройте Pull Request. Убедитесь, что CI из прошлого урока запустился.

Проверка: на странице PR видна проверка checks.