Git для работы с Codex
Зачем это изучать
Вы сможете увидеть каждую правку Codex, сохранить рабочее состояние и не потерять хороший вариант, если следующая попытка окажется неудачной.
Git — программа, которая хранит историю изменений файлов. Она не обязательна для запуска Codex: агент умеет читать и менять обычную локальную папку. Но с Git работа становится заметно безопаснее и понятнее.
Попробуйте сейчас
Выполните git status в учебной папке. Пока ничего не исправляйте и не добавляйте: просто прочитайте, есть ли история, какая ветка открыта и какие файлы изменены.
На сервере этого учебного проекта Git уже установлен. Проверенная версия: git 2.53.0. Если вы работаете на этом сервере, устанавливать Git заново не нужно. Проверить доступность в любой среде:
git --versionПочему Git выгоден при работе с Codex
Без Git вы видите только текущее содержимое файлов. С Git появляется исходная точка, относительно которой можно проверить работу агента:
- Видно каждую правку. Сравнение изменений показывает добавленные и удалённые строки.
- Можно сохранить хорошее состояние. Коммит создаёт именованную точку в истории.
- Можно отделить задачи. Ветка или отдельная рабочая копия не смешивает эксперимент с основной работой.
- Проще отменить ошибку. Сохранённая история помогает вернуть известное рабочее состояние. Несохранённые изменения всё равно требуют осторожности.
- Codex получает точную область проверки. Команды
/diff,/reviewиcodex reviewпонимают, какие строки появились после выбранной точки.
Git не доказывает, что изменение правильное. Он даёт историю и удобное сравнение; правильность подтверждают тесты и ручная проверка.
Основной принцип
Файлы в рабочей папке
↓
Просмотр изменений
↓
Выбор нужных файлов или строк
↓
Коммит — сохранённая точка историиРабочее дерево — текущая папка с файлами. Изменения в ней могут быть:
- не выбранными для следующего коммита;
- выбранными для следующего коммита;
- уже сохранёнными в коммите.
Выбор для коммита называется подготовкой изменений. Это не публикация и не отправка на внешний сервер.
Узнать состояние папки
Выполните:
git statusКоманда показывает:
- текущую ветку;
- изменённые и новые файлы;
- какие изменения выбраны для коммита;
- какие изменения ещё не выбраны.
Посмотреть строки, которые ещё не выбраны:
git diffПосмотреть уже выбранные строки:
git diff --stagedВ диалоге Codex похожий обзор открывает /diff.
Превратить обычную папку в репозиторий
Если git status сообщает not a git repository, папка пока не хранит историю Git. После проверки правильного пути можно выполнить:
git initКоманда создаёт скрытую служебную папку .git внутри текущей папки. Она не отправляет файлы в интернет. До первого коммита:
- Создайте или проверьте
.gitignore— список файлов, которые нельзя добавлять в историю, например секретов, временных файлов и зависимостей. - Выполните
git statusи внимательно прочитайте список. - Не добавляйте
.env, ключи, токены, журналы и личные данные.
Сохранить проверенное состояние
Выберите конкретный файл:
git add path/to/fileПроверьте выбранные изменения:
git diff --stagedСоздайте коммит с кратким объяснением:
git commit -m "docs: explain the first Codex session"Коммит сохраняется локально. git push — отдельная операция, которая отправляет коммиты в удалённый репозиторий. Codex не должен выполнять её без прямой просьбы.
Ветки для независимых задач
Создать новую ветку и перейти в неё:
git switch -c explain-codex-termsТеперь новые коммиты идут в отдельную линию истории. Это удобно, когда Codex выполняет задачу, которую ещё нужно проверить, прежде чем объединять с основной версией.
Worktree создаёт ещё и отдельную папку для ветки. Так можно вести несколько задач параллельно, не смешивая незавершённые файлы. Эта возможность рассматривается на странице приложения ChatGPT.
Что нельзя отменять вслепую
Команды отмены могут уничтожить несохранённый текст. Не выполняйте по совету из случайного сообщения:
git reset --hard
git clean -fdСначала выполните git status и git diff, определите владельца изменений и создайте безопасную копию, если история ещё не сохранена. Отмена изменения в графическом интерфейсе тоже может удалить несохранённые строки.
Git и проверка Codex
Рекомендуемый цикл:
- До задачи выполните
git status. - Попросите Codex не трогать посторонние изменения.
- После задачи откройте
/diffили выполнитеgit diff. - Запустите тесты проекта.
- Проверьте каждый изменённый файл.
- Выберите только нужные изменения и создайте коммит.
- Отправляйте коммит во внешний репозиторий только отдельным осознанным шагом.
Куда дальше
Вернитесь к первому сеансу, примените цикл Git к маленькой правке, затем откройте проверку изменений. Для практики на реальном учебном приложении используйте урок «Git и проект Laravel»: там каждый законченный шаг сохраняется отдельно и его легко отменить.