Как перенести проект из Codex на сервер и продолжить в Hermes

Опубликовано 24.09.20266 мин чтенияСредний
Проект в светящейся папке переносится из Codex в Hermes, формируя вокруг себя связи и зависимости.
Что узнаешь
  • Как перенести репозиторий, восстановить зависимости и проверить рабочую копию перед первой задачей в Hermes.
Средний

Разборы работы с агентами можно читать в каналах.

Что подготовить до переноса

Репозиторий - папка проекта с историей изменений Git. Рабочая копия содержит файлы, которые ты редактируешь. Задача здесь - получить такую копию на сервере и продолжить разработку. Делать приложение доступным посетителям пока не требуется.

Если агента на сервере ещё нет, начни с установки Hermes Agent на VPS. Здесь понадобятся уже работающий Hermes, терминал сервера и Git. Нужен удалённый репозиторий, доступный с сервера; если его ещё нет, сначала создай его и сохрани туда проект без секретов. Для закрытого репозитория заранее настрой доступ на чтение от своей учётной записи; не вставляй токен в адрес репозитория или сообщение агенту.

Останови параллельные правки проекта на время переноса. На исходном компьютере открой терминал именно в папке проекта и выполни:

bash
git status --short --branch
git status --short --ignored

Первая команда показывает ветку и состояние файлов. M означает изменение, ?? - файл, который Git ещё не отслеживает. Во второй команде игнорируемые файлы помечаются !!. Обычный чистый статус не доказывает, что у тебя нет нужных файлов вне Git.

Сохрани нужные изменения отдельным коммитом и отправь нужную ветку в свой удалённый репозиторий привычным способом. Перед отправкой проверь состав коммита: ключи, пароли и реальные пользовательские данные туда попадать не должны. Если не знаешь, какие изменения сохранять, сначала попроси Codex показать их список и объяснить назначение, без удаления файлов и отправки в репозиторий.

Часть проектаЧто проверить перед переносом
Исходники и история GitНужные изменения сохранены и доступны в выбранной ветке удалённого репозитория
README и инструкции агентуОписаны запуск, проверки и ограничения; инструкции актуальны
Файлы зависимостейСохранены описание зависимостей и используемый проектом lockfile, то есть файл закреплённых версий
СекретыЕсть отдельный безопасный способ задать их на сервере; значения не лежат в Git и не пересылаются в чат
База данных и загруженные файлыПонятно, откуда взять разрешённые тестовые данные и как восстановить их по инструкции проекта

Не рассчитывай, что клонирование репозитория перенесёт внешнюю базу, содержимое игнорируемой папки или переписку с Codex. История чатов, подписки, профили и настройки самих агентов в этот способ переноса не входят.

Для дальнейшей работы с ИИ-агентами можно посмотреть актуальную программу практикума.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Скопируй нужную ветку на сервер

Сначала на исходном компьютере сохрани вывод:

bash
git status --porcelain=v2 --branch

В строке # branch.oid указан текущий коммит, в # branch.head - ветка. Коммит - сохранённая версия проекта. Для обычного проекта с уже созданными коммитами это позволяет сравнить исходную и новую копии; незакоммиченные изменения таким сравнением не проверяются.

На сервере перейди в каталог, где будешь хранить проекты. Клонируй свой репозиторий в новую папку. В шаблоне ниже замени REPOSITORY_URL адресом своего репозитория, BRANCH_NAME именем сохранённой и отправленной ветки, а my-project желаемым именем новой папки:

bash
git clone --branch BRANCH_NAME REPOSITORY_URL my-project
cd my-project
git status --porcelain=v2 --branch

Это шаблон, а не готовый адрес для копирования. git clone создаёт папку и рабочую копию выбранной ветки. Существующая папка назначения должна быть пустой: не удаляй её содержимое ради повторного запуска, выбери новое имя.

Сравни # branch.oid в обеих копиях. Если значения различаются, не начинай исправлять код на сервере: проверь выбранную ветку, отправленные коммиты и отсутствие параллельных изменений. Если в выводе статуса есть изменённые файлы, разберись с ними отдельно. Не используй очистку или принудительный сброс как способ «добиться совпадения».

В репозиториях с Git submodules, то есть вложенными репозиториями, потребуется также получить их содержимое. Для этого у git clone есть параметр --recurse-submodules; используй его, если проект действительно содержит подмодули и их адреса проверены. Проектам с другими внешними ресурсами может требоваться дополнительная процедура из README.

Восстанови зависимости по правилам проекта

Сначала прочитай README и файлы настройки проекта. Выясни, какая версия среды выполнения нужна и каким менеджером устанавливаются зависимости. Не заменяй привычный инструмент проекта на npm только потому, что он есть в примере ниже.

Условный пример для Node.js и npm: в репозитории есть согласованные package.json и package-lock.json, а на сервере установлена подходящая проекту версия Node.js. Тогда в папке проекта выполни:

bash
npm ci

По документации npm ci, команда устанавливает зависимости целого проекта по lockfile, не переписывая package.json и package-lock.json. Если их содержимое не согласовано, установка завершится ошибкой. Имеющаяся папка node_modules перед установкой удаляется.

Если lockfile был создан с параметрами, влияющими на дерево зависимостей, например --legacy-peer-deps, для npm ci нужны те же параметры. Проверь инструкции и настройки исходного проекта. Не удаляй lockfile и не обновляй все зависимости, чтобы скрыть первую ошибку переноса.

Перед установкой проверь команды установки и запуска в собственном проекте. Выполняй их в отдельной рабочей копии без доступа к боевым данным, а необходимые значения окружения задавай вне чата и Git. Для проверки проекта по возможности используй тестовые учётные данные с ограниченными правами. Если проект зависит от базы или файлов, сначала восстанови разрешённый тестовый набор по его инструкции; одинаковые исходники не заменяют эти данные.

После установки выполни существующие проверки из README: тесты и сборку, если они предусмотрены. Названия команд зависят от проекта. Успешная установка зависимостей ещё не означает, что приложение работает.

Открой рабочую копию в Hermes

В терминале сервера перейди в корень новой копии и запусти уже установленный агент:

bash
cd /absolute/path/to/my-project
hermes

Здесь /absolute/path/to/my-project - место для полного пути к твоему проекту. На стартовом экране Hermes проверь рабочий каталог и среду выполнения терминальных команд. Этот способ запуска рассчитан на локальную среду терминала Hermes на сервере. Если настроены SSH или Docker, агент может выполнять команды в другой среде; сначала уточни доступный там путь к проекту.

Попроси агента подтвердить фактическую рабочую папку его инструментом терминала, затем прочитать README и инструкции проекта. Не считай название папки в сообщении достаточной проверкой.

Порядок ниже указан в закреплённой версии документации и может отличаться в твоей установленной версии Hermes. Проверь действующие инструкции в своей сессии. Hermes поддерживает AGENTS.md, но его чтение зависит от приоритетов файлов контекста. По официальной документации Hermes выбирается один тип инструкций: .hermes.md, затем AGENTS.override.md, AGENTS.md, CLAUDE.md и .cursorrules. Поэтому наличие старого .hermes.md или личного AGENTS.override.md нужно проверить до работы: не рассчитывай, что агент обязательно применит лежащий рядом AGENTS.md.

В выбранных инструкциях сохрани назначение проекта, команды проверок и ограничения на изменения. Не превращай их в архив переписки. Если нужно передавать именно настройки между агентами, это другой процесс; его границы разобраны в материале о миграции с Claude Code на Codex.

Дай одну задачу и проверь результат

Начни с чтения проекта, без правок. Например:

Работаем с существующим проектом в указанной мной папке.
Подтверди фактический рабочий каталог инструментом терминала.
Прочитай README и действующие инструкции проекта.
Не открывай файлы с секретами и не выводи значения окружения.
Назови команды проверок и необходимые условия их запуска.
Пока ничего не меняй, не устанавливай и не отправляй в репозиторий.

После этого согласуй одну небольшую задачу, например исправление текста в интерфейсе. Укажи файлы или область изменений и запрети попутное обновление зависимостей. Если хочешь отделить эксперимент от основной копии, сначала разберись с отдельной рабочей копией Git worktree.

Принимай результат по изменениям файлов и повторным проверкам проекта. На случай неудачного эксперимента заранее сохрани исходную копию и точку возврата; не проси агента массово сбросить все изменения. Если проверка не проходит, сравни ошибку с исходной копией: это помогает отделить проблему переноса от дефекта, который был раньше.

Перенос можно считать завершённым, когда нужная версия исходников на месте, окружение восстановлено, необходимые данные доступны в безопасной тестовой среде, проверки проходят, а Hermes работает именно в этой папке. Публикация приложения для посетителей - следующий самостоятельный этап, в эту проверку она не входит.

Для дальнейшей работы с агентами можно свериться с актуальной программой практикума ниже.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Была инструкция полезна?
Артемий Миллер
Автор
Артемий Миллер
Предприниматель и вайб-кодер

Артемий Миллер - предприниматель и вайб-кодер. Бывший программист, собирает продукты исключительно вместе с ИИ-агентами, без найма разработчиков.

Связанные инструкции