Git как страховка
коммит перед каждой задачей
Что это
Git — система, которая хранит историю изменений. Для работы с ИИ он важнее, чем для работы руками, по одной причине: он делает откат дешёвым.
Откат — главный инструмент из статьи 4.10, и его цена целиком зависит от того, когда был последний коммит. Коммит час назад — откат стоит часа. Коммит перед задачей — откат стоит ничего.
Как выглядит в коде
Четыре команды, которых хватает
git status --short # что изменилось
git add -A # взять все изменения
git commit -m "описание" # зафиксировать
git log --oneline # посмотреть историюВывод git status --short читается просто:
M bot.py
?? temp.txtM — файл изменён, ?? — файл новый и git про него не знает.
Привычка, ради которой всё затевалось
Коммит перед тем, как дать ИИ задачу. Не после, а до.
git add -A && git commit -m "перед добавлением команды /stats"Пять секунд. После этого что бы ни произошло — сколько бы файлов ИИ ни переписал, что бы ни сломал — возврат к рабочему состоянию стоит одной команды.
Откат
git checkout -- bot.py # откатить один файл
git checkout -- . # откатить всё незакоммиченноеПроверено на живом репозитории: файл с print('сломал') после
git checkout -- bot.py снова стал print('v2 — добавил погоду').
Если откатывать жалко:
git stash # отложить в сторону
git stash pop # вернуть обратноВернуться к старому коммиту:
git log --oneline # найти нужный
git reset --hard 7c93d98 # вернуться к немуЧто писать в сообщении коммита
Коротко и о том, зачем, а не что. Что — видно из диффа.
| Плохо | Хорошо |
|---|---|
fix | исправлен KeyError при отсутствии города |
update bot.py | подписки перенесены в SQLite |
изменения | перед рефакторингом хендлеров |
Последний пример — тот самый коммит «до задачи». Такое сообщение через неделю скажет, где была точка возврата.
Как сказать ИИ
Я закоммитил текущее состояние. Делай правку смело,
если что — откачу.Фраза не для ИИ, а для себя: она проверяет, что коммит действительно сделан.
Полезное применение git в разговоре с ИИ:
Вот дифф моих изменений за сессию. Составь сообщение
коммита: одна строка, по-русски, о том, зачем менялось.Код работал вчера и сломался сегодня. Вот git log
за два дня. С какого коммита стоит начать поиск?На что смотреть
Коммиты раз в день. Тогда откат стоит дня. Коммить надо по задачам, а не по времени.
Всё одним коммитом. Рефакторинг, фича и починка вместе — откатить что-то одно уже нельзя (статья 3.6).
git add -A без взгляда на status. Так в коммит попадают .env, базы,
временные файлы. Сначала status, потом add.
Нет .gitignore. Тогда в репозиторий попадает .venv со всеми
библиотеками и секреты. Про это — статья 5.7.
Коммит «на всякий случай» вместо отката. Коммитить сломанное, чтобы «не потерять», — путь к истории, в которой нет ни одной рабочей точки.
Шпаргалка
Коммит перед задачей, а не после. Пять секунд.
Четыре команды:
status --short·add -A·commit -m·log --oneline.Откат:
checkout -- ., отложить:stash, вернуться:reset --hard.reset --hardудаляет незакоммиченное безвозвратно.В сообщении пиши зачем, а не что.
Одна задача — один коммит.