Blog

Memindahkan proyek dari Codex ke Hermes di server

Markdown

Memindahkan repositori ke server agar dapat bekerja di Hermes: perubahan yang disimpan, dependensi, rahasia, folder kerja, dan pemeriksaan sebelum melanjutkan pengembangan.

Baca artikel lengkap

Untuk bantuan menggunakan layanan ini, lihat dokumentasi Ailoot.

Poin utama

Untuk melanjutkan pekerjaan di Hermes dengan proyek yang dibuat menggunakan Codex, pindahkan repositorinya dan pulihkan lingkungannya. Untuk pendekatan ini, Anda tidak memerlukan langkah terpisah untuk “mengimpor proyek dari agen”. Pertama, periksa file yang disimpan dan dependensinya, lalu buka folder yang tepat di Hermes. Panduan ini mengasumsikan bahwa server dan Hermes sudah disiapkan dan Anda memiliki akses ke repositori.

Yang perlu disiapkan sebelum pemindahan

Repositori adalah folder proyek beserta riwayat perubahan Git-nya. Salinan kerja berisi file yang Anda edit. Dalam hal ini, salinan tersebut perlu dipindahkan ke server agar pengembangan dapat dilanjutkan. Anda belum perlu membuat aplikasi tersedia bagi pengunjung.

Jika agen belum terpasang di server, mulailah dengan memasang Hermes Agent di VPS. Untuk panduan ini, Anda memerlukan instalasi Hermes yang berfungsi, terminal server, dan Git. Anda memerlukan repositori jarak jauh yang dapat diakses dari server; jika belum punya, buatlah terlebih dahulu dan simpan proyek di sana tanpa rahasia. Untuk repositori privat, siapkan akses baca dari akun Anda terlebih dahulu; jangan masukkan token ke URL repositori atau ke pesan kepada agen.

Hentikan sementara pengeditan proyek secara bersamaan selama pemindahan. Di komputer sumber, buka terminal di folder proyek itu sendiri dan jalankan:

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

Perintah pertama menampilkan cabang dan status file. M berarti ada perubahan, dan ?? berarti file belum dilacak oleh Git. Pada perintah kedua, file yang diabaikan ditandai dengan !!. Status bersih yang normal tidak membuktikan bahwa Anda tidak memiliki file penting di luar Git.

Simpan perubahan yang diperlukan dalam commit terpisah dan push cabang yang tepat ke repositori jarak jauh seperti biasa. Sebelum melakukan push, periksa isi commit: kunci, kata sandi, dan data pengguna nyata tidak boleh disertakan. Jika Anda tidak tahu perubahan mana yang perlu disimpan, minta Codex mencantumkan perubahan tersebut dan menjelaskan tujuannya terlebih dahulu, tanpa menghapus file atau melakukan push ke repositori.

Bagian proyekYang perlu diperiksa sebelum pemindahan
File sumber dan riwayat GitPerubahan yang diperlukan sudah disimpan dan dapat diakses di cabang terpilih pada repositori jarak jauh
README dan instruksi agenLangkah memulai, pemeriksaan, dan batasan sudah didokumentasikan; instruksinya mutakhir
File dependensiDefinisi dependensi dan lockfile yang digunakan proyek—file yang menetapkan versi—sudah disimpan
RahasiaAda cara terpisah dan aman untuk mengaturnya di server; nilainya tidak ada di Git atau dikirim melalui chat
Basis data dan file yang diunggahAnda tahu di mana mendapatkan data uji yang diizinkan dan cara memulihkannya sesuai instruksi proyek

Jangan berasumsi bahwa mengkloning repositori akan memindahkan basis data eksternal, isi folder yang diabaikan, atau percakapan Anda dengan Codex. Riwayat chat, langganan, profil, dan pengaturan agen itu sendiri tidak termasuk dalam metode pemindahan ini.

Salin cabang yang tepat ke server

Pertama, simpan keluaran perintah ini di komputer sumber:

git status --porcelain=v2 --branch

Baris # branch.oid menampilkan commit saat ini, dan # branch.head menampilkan cabangnya. Commit adalah versi proyek yang disimpan. Untuk proyek biasa yang sudah memiliki commit, ini memungkinkan Anda membandingkan salinan sumber dan salinan baru; perbandingan ini tidak memeriksa perubahan yang belum di-commit.

Di server, buka direktori tempat Anda akan menyimpan proyek. Klon repositori Anda ke folder baru. Pada templat di bawah, ganti REPOSITORY_URL dengan URL repositori Anda, BRANCH_NAME dengan nama cabang yang sudah Anda simpan dan push, serta my-project dengan nama yang Anda inginkan untuk folder baru:

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

Ini adalah templat, bukan URL siap pakai untuk disalin. git clone membuat folder dan salinan kerja dari cabang yang dipilih. Jika folder tujuan sudah ada, folder itu harus kosong: jangan hapus isinya untuk menjalankan perintah lagi; pilih nama baru.

Bandingkan # branch.oid pada kedua salinan. Jika nilainya berbeda, jangan mulai memperbaiki kode di server: periksa cabang yang dipilih, commit yang Anda push, dan apakah ada perubahan paralel. Jika keluaran status menunjukkan file yang berubah, selidiki secara terpisah. Jangan gunakan pembersihan atau reset paksa untuk membuatnya “sama”.

Repositori dengan submodul Git—repositori bertingkat—juga mengharuskan Anda mengambil isinya. git clone memiliki opsi --recurse-submodules untuk itu; gunakan jika proyek memang memiliki submodul dan URL-nya sudah diperiksa. Proyek dengan sumber daya eksternal lainnya mungkin memerlukan prosedur tambahan yang dijelaskan di README.

Pulihkan dependensi sesuai aturan proyek

Pertama, baca README dan file konfigurasi proyek. Cari tahu versi runtime yang diperlukan dan pengelola paket yang digunakan untuk memasang dependensi. Jangan mengganti alat yang biasa digunakan proyek dengan npm hanya karena alat itu muncul pada contoh di bawah.

Contoh hipotetis untuk Node.js dan npm: repositori memiliki file package.json dan package-lock.json yang konsisten, dan versi Node.js yang sesuai untuk proyek sudah terpasang di server. Dalam kondisi itu, jalankan perintah ini di folder proyek:

npm ci

Menurut dokumentasi npm ci, perintah ini memasang dependensi untuk seluruh proyek dari lockfile tanpa menulis ulang package.json atau package-lock.json. Jika isinya tidak konsisten, instalasi akan gagal. Folder node_modules yang sudah ada akan dihapus sebelum instalasi.

Jika lockfile dibuat dengan opsi yang memengaruhi pohon dependensi, seperti --legacy-peer-deps, npm ci memerlukan opsi yang sama. Periksa instruksi dan pengaturan proyek sumber. Jangan hapus lockfile atau perbarui semua dependensi untuk menyamarkan kesalahan pemindahan pertama.

Sebelum memasang, periksa perintah instalasi dan startup di proyek Anda sendiri. Jalankan perintah tersebut di salinan kerja terpisah yang tidak memiliki akses ke data produksi, dan atur nilai lingkungan yang diperlukan di luar chat dan Git. Jika memungkinkan, gunakan kredensial uji dengan izin terbatas untuk memeriksa proyek. Jika proyek bergantung pada basis data atau file, pulihkan dahulu kumpulan data uji yang diizinkan sesuai instruksinya; file sumber yang identik tidak menggantikan data tersebut.

Setelah instalasi, jalankan pemeriksaan yang sudah ada di README: tes dan build, jika tersedia. Nama perintah bergantung pada proyek. Berhasil memasang dependensi belum berarti aplikasi berfungsi.

Buka salinan kerja di Hermes

Di terminal server, buka root salinan baru dan mulai agen yang sudah terpasang:

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

Di sini, /absolute/path/to/my-project adalah placeholder untuk path lengkap ke proyek Anda. Pada layar startup Hermes, periksa direktori kerja dan lingkungan tempat perintah terminal dijalankan. Metode startup ini ditujukan untuk lingkungan terminal lokal Hermes di server. Jika SSH atau Docker dikonfigurasi, agen mungkin menjalankan perintah di lingkungan lain; pastikan terlebih dahulu path proyek yang tersedia di sana.

Minta agen mengonfirmasi folder kerjanya yang sebenarnya menggunakan alat terminal, lalu membaca README dan instruksi proyek. Jangan menganggap nama folder dalam pesan sebagai verifikasi yang memadai.

Urutan di bawah ini tercantum dalam versi dokumentasi yang dipatok dan mungkin berbeda dari versi Hermes yang Anda pasang. Periksa instruksi terkini dalam sesi Anda. Hermes mendukung AGENTS.md, tetapi apakah file tersebut dibaca bergantung pada prioritas file konteks. Menurut dokumentasi resmi Hermes, satu jenis file instruksi dipilih: .hermes.md, lalu AGENTS.override.md, AGENTS.md, CLAUDE.md, dan .cursorrules. Sebelum mulai bekerja, periksa apakah ada .hermes.md lama atau AGENTS.override.md pribadi: jangan berasumsi bahwa agen pasti akan menerapkan AGENTS.md yang ada bersamanya.

Dalam instruksi yang dipilih, pertahankan tujuan proyek, perintah pemeriksaan, dan batasan perubahan. Jangan mengubahnya menjadi arsip percakapan. Jika Anda perlu memindahkan pengaturan agen itu sendiri, prosesnya berbeda; cakupannya dijelaskan dalam panduan migrasi dari Claude Code ke Codex.

Berikan satu tugas kepada agen dan periksa hasilnya

Mulailah dengan membaca proyek tanpa membuat perubahan. Misalnya:

Kami bekerja dengan proyek yang sudah ada di folder yang saya tentukan.
Konfirmasikan direktori kerja yang sebenarnya menggunakan alat terminal.
Baca README dan instruksi proyek saat ini.
Jangan buka file yang berisi rahasia atau tampilkan nilai lingkungan.
Sebutkan perintah pemeriksaan dan prasyarat untuk menjalankannya.
Untuk saat ini, jangan mengubah atau memasang apa pun, atau melakukan push ke repositori.

Lalu sepakati satu tugas kecil, misalnya memperbaiki teks di antarmuka. Tentukan file atau area yang akan diubah, dan larang pembaruan dependensi yang tidak terkait. Jika Anda ingin memisahkan eksperimen dari salinan utama, pelajari dahulu tentang salinan kerja Git worktree terpisah.

Terima hasilnya berdasarkan perubahan file dan pemeriksaan proyek yang diulang. Sebelum eksperimen yang berpotensi gagal, simpan salinan sumber dan titik pemulihan; jangan minta agen mereset semua perubahan sekaligus. Jika pemeriksaan gagal, bandingkan kesalahan dengan salinan sumber: ini membantu membedakan masalah pemindahan dari cacat yang sudah ada sebelumnya.

Pemindahan dapat dianggap selesai ketika versi file sumber yang diperlukan sudah ada, lingkungan sudah dipulihkan, data yang diperlukan tersedia di lingkungan uji yang aman, pemeriksaan berhasil, dan Hermes bekerja di folder yang tepat ini. Menerbitkan aplikasi agar dapat dikunjungi orang adalah tahap berikutnya yang terpisah dan bukan bagian dari pemeriksaan ini.

Kenali Ailoot.

Rincian selengkapnya

Pertanyaan tentang Memindahkan proyek dari Codex ke Hermes di server

Apakah mengkloning repositori memindahkan seluruh lingkungan kerja?

Tidak. Kloning Git tidak membawa file yang diabaikan, basis data eksternal, data unggahan, rahasia, atau riwayat chat agen. Pulihkan dependensi yang diperlukan dan data uji yang diizinkan secara terpisah sesuai instruksi proyek.

Apa yang dibandingkan sebelum mengedit salinan server?

Bandingkan cabang dan identitas commit tersimpan dengan salinan sumber, periksa perubahan yang belum di-commit, dan minta Hermes memverifikasi direktori kerja sebenarnya. Lalu jalankan pemeriksaan proyek yang sudah ada pada salinan yang tepat itu.

Semua artikel