Μεταφορά ενός έργου από το Codex στο Hermes σε διακομιστή
MarkdownΜεταφορά ενός αποθετηρίου σε διακομιστή για εργασία στο Hermes: αποθηκευμένες αλλαγές, εξαρτήσεις, μυστικά, φάκελος εργασίας και έλεγχοι πριν από τη συνέχιση της ανάπτυξης.
Διαβάστε ολόκληρο το άρθρο
Για βοήθεια σχετικά με τη χρήση της υπηρεσίας, δείτε την τεκμηρίωση του Ailoot.
Κύριο συμπέρασμα
Για να συνεχίσετε στο Hermes με ένα έργο που δημιουργήθηκε με το Codex, μεταφέρετε το ίδιο το αποθετήριο και επαναφέρετε το περιβάλλον του. Δεν χρειάζεται ξεχωριστό βήμα «εισαγωγής έργου από agent» για αυτήν την προσέγγιση. Πρώτα ελέγξτε τα αποθηκευμένα αρχεία και τις εξαρτήσεις και, στη συνέχεια, ανοίξτε τον σωστό φάκελο στο Hermes. Αυτός ο οδηγός υποθέτει ότι ο διακομιστής και το Hermes είναι ήδη ρυθμισμένα και ότι έχετε πρόσβαση στο αποθετήριο.
Τι να προετοιμάσετε πριν από τη μεταφορά
Ένα αποθετήριο είναι ένας φάκελος έργου με το ιστορικό αλλαγών του Git. Ένα αντίγραφο εργασίας περιέχει τα αρχεία που επεξεργάζεστε. Ο στόχος εδώ είναι να μεταφέρετε αυτό το αντίγραφο στον διακομιστή και να συνεχίσετε την ανάπτυξη. Δεν χρειάζεται ακόμη να κάνετε την εφαρμογή διαθέσιμη στους επισκέπτες.
Αν ο agent δεν είναι ακόμη εγκατεστημένος στον διακομιστή, ξεκινήστε με την εγκατάσταση του Hermes Agent σε VPS. Εδώ, θα χρειαστείτε μια λειτουργική εγκατάσταση του Hermes, το τερματικό του διακομιστή και το Git. Χρειάζεστε ένα απομακρυσμένο αποθετήριο στο οποίο να έχει πρόσβαση ο διακομιστής· αν δεν έχετε ακόμη, δημιουργήστε το πρώτα και αποθηκεύστε εκεί το έργο χωρίς μυστικά. Για ένα ιδιωτικό αποθετήριο, ρυθμίστε εκ των προτέρων πρόσβαση ανάγνωσης από τον δικό σας λογαριασμό· μην βάλετε διακριτικό στο URL του αποθετηρίου ή σε μήνυμα προς τον agent.
Διακόψτε προσωρινά τις παράλληλες επεξεργασίες του έργου κατά τη μεταφορά. Στον υπολογιστή προέλευσης, ανοίξτε ένα τερματικό στον ίδιο τον φάκελο του έργου και εκτελέστε:
git status --short --branch
git status --short --ignored
Η πρώτη εντολή εμφανίζει τον κλάδο και την κατάσταση των αρχείων. Το M σημαίνει τροποποίηση και το ?? σημαίνει αρχείο που δεν παρακολουθεί ακόμη το Git. Στη δεύτερη εντολή, τα αρχεία που αγνοούνται επισημαίνονται με !!. Μια κανονική καθαρή κατάσταση δεν αποδεικνύει ότι δεν έχετε απαραίτητα αρχεία εκτός Git.
Αποθηκεύστε τις απαραίτητες αλλαγές σε ξεχωριστό commit και κάντε push τον σωστό κλάδο στο απομακρυσμένο αποθετήριό σας με τον συνήθη τρόπο. Πριν από το push, ελέγξτε τι περιλαμβάνει το commit: δεν πρέπει να περιλαμβάνονται κλειδιά, κωδικοί πρόσβασης και πραγματικά δεδομένα χρηστών. Αν δεν γνωρίζετε ποιες αλλαγές να αποθηκεύσετε, ζητήστε πρώτα από το Codex να τις απαριθμήσει και να εξηγήσει τον σκοπό τους, χωρίς να διαγράψει αρχεία ή να κάνει push στο αποθετήριο.
| Μέρος του έργου | Τι να ελέγξετε πριν από τη μεταφορά |
|---|---|
| Αρχεία πηγαίου κώδικα και ιστορικό Git | Οι απαραίτητες αλλαγές έχουν αποθηκευτεί και είναι προσβάσιμες στον επιλεγμένο κλάδο του απομακρυσμένου αποθετηρίου |
| README και οδηγίες agent | Τα βήματα εκκίνησης, οι έλεγχοι και οι περιορισμοί είναι καταγεγραμμένα· οι οδηγίες είναι ενημερωμένες |
| Αρχεία εξαρτήσεων | Οι ορισμοί εξαρτήσεων και το αρχείο κλειδώματος που χρησιμοποιεί το έργο—το αρχείο που καθορίζει τις εκδόσεις—έχουν αποθηκευτεί |
| Μυστικά | Υπάρχει ξεχωριστός, ασφαλής τρόπος ορισμού τους στον διακομιστή· οι τιμές τους δεν βρίσκονται στο Git ούτε αποστέλλονται μέσω συνομιλίας |
| Βάση δεδομένων και μεταφορτωμένα αρχεία | Γνωρίζετε πού θα βρείτε επιτρεπόμενα δεδομένα δοκιμών και πώς να τα επαναφέρετε σύμφωνα με τις οδηγίες του έργου |
Μην υποθέτετε ότι η κλωνοποίηση του αποθετηρίου θα μεταφέρει μια εξωτερική βάση δεδομένων, τα περιεχόμενα ενός φακέλου που αγνοείται ή τις συνομιλίες σας με το Codex. Το ιστορικό συνομιλιών, οι συνδρομές, τα προφίλ και οι ρυθμίσεις των ίδιων των agent δεν αποτελούν μέρος αυτής της μεθόδου μεταφοράς.
Αντιγράψτε τον σωστό κλάδο στον διακομιστή
Πρώτα, αποθηκεύστε την έξοδο αυτής της εντολής στον υπολογιστή προέλευσης:
git status --porcelain=v2 --branch
Η γραμμή # branch.oid εμφανίζει το τρέχον commit και η # branch.head εμφανίζει τον κλάδο. Ένα commit είναι μια αποθηκευμένη έκδοση του έργου. Για ένα τυπικό έργο με υπάρχοντα commits, αυτό σας επιτρέπει να συγκρίνετε τα αντίγραφα προέλευσης και το νέο αντίγραφο· αυτή η σύγκριση δεν ελέγχει μη αποθηκευμένες αλλαγές.
Στον διακομιστή, μεταβείτε στον κατάλογο όπου θα αποθηκεύετε τα έργα σας. Κλωνοποιήστε το αποθετήριό σας σε έναν νέο φάκελο. Στο παρακάτω πρότυπο, αντικαταστήστε το REPOSITORY_URL με το URL του αποθετηρίου σας, το BRANCH_NAME με το όνομα του κλάδου που αποθηκεύσατε και κάνατε push, και το my-project με το όνομα που θέλετε για τον νέο φάκελο:
git clone --branch BRANCH_NAME REPOSITORY_URL my-project
cd my-project
git status --porcelain=v2 --branch
Αυτό είναι πρότυπο, όχι έτοιμο URL για αντιγραφή. Η εντολή git clone δημιουργεί έναν φάκελο και ένα αντίγραφο εργασίας του επιλεγμένου κλάδου. Αν ο φάκελος προορισμού υπάρχει ήδη, πρέπει να είναι κενός: μην διαγράψετε τα περιεχόμενά του για να επαναλάβετε την εντολή· επιλέξτε νέο όνομα.
Συγκρίνετε το # branch.oid και στα δύο αντίγραφα. Αν οι τιμές διαφέρουν, μην αρχίσετε να διορθώνετε κώδικα στον διακομιστή: ελέγξτε τον επιλεγμένο κλάδο, τα commits που κάνατε push και αν έγιναν παράλληλες αλλαγές. Αν η έξοδος κατάστασης εμφανίζει τροποποιημένα αρχεία, διερευνήστε τα ξεχωριστά. Μην χρησιμοποιήσετε εκκαθάριση ή αναγκαστική επαναφορά ως τρόπο για να «τα κάνετε να ταιριάζουν».
Τα αποθετήρια με Git submodules—ένθετα αποθετήρια—απαιτούν επίσης να ανακτήσετε το περιεχόμενό τους. Η εντολή git clone διαθέτει την επιλογή --recurse-submodules· χρησιμοποιήστε την αν το έργο περιέχει πράγματι submodules και έχουν ελεγχθεί τα URL τους. Τα έργα με άλλους εξωτερικούς πόρους ενδέχεται να απαιτούν πρόσθετη διαδικασία που περιγράφεται στο README.
Επαναφέρετε τις εξαρτήσεις σύμφωνα με τους κανόνες του έργου
Πρώτα, διαβάστε το README και τα αρχεία ρυθμίσεων του έργου. Μάθετε ποια έκδοση runtime απαιτείται και ποιος διαχειριστής πακέτων χρησιμοποιείται για την εγκατάσταση των εξαρτήσεων. Μην αντικαταστήσετε το συνηθισμένο εργαλείο του έργου με το npm μόνο και μόνο επειδή εμφανίζεται στο παρακάτω παράδειγμα.
Υποθετικό παράδειγμα για Node.js και npm: το αποθετήριο έχει συνεπή αρχεία package.json και package-lock.json, και στον διακομιστή είναι εγκατεστημένη έκδοση Node.js κατάλληλη για το έργο. Σε αυτήν την περίπτωση, εκτελέστε την εξής εντολή στον φάκελο του έργου:
npm ci
Σύμφωνα με την τεκμηρίωση του npm ci, η εντολή εγκαθιστά τις εξαρτήσεις για ολόκληρο το έργο από το αρχείο κλειδώματος, χωρίς να ξαναγράφει τα package.json ή package-lock.json. Αν τα περιεχόμενά τους δεν είναι συνεπή, η εγκατάσταση αποτυγχάνει. Κάθε υπάρχων φάκελος node_modules διαγράφεται πριν από την εγκατάσταση.
Αν το αρχείο κλειδώματος δημιουργήθηκε με επιλογές που επηρεάζουν το δέντρο εξαρτήσεων, όπως το --legacy-peer-deps, η npm ci χρειάζεται τις ίδιες επιλογές. Ελέγξτε τις οδηγίες και τις ρυθμίσεις του έργου προέλευσης. Μην διαγράψετε το αρχείο κλειδώματος ούτε ενημερώσετε όλες τις εξαρτήσεις για να αποκρύψετε το πρώτο σφάλμα μεταφοράς.
Πριν από την εγκατάσταση, ελέγξτε τις εντολές εγκατάστασης και εκκίνησης του δικού σας έργου. Εκτελέστε τις σε ξεχωριστό αντίγραφο εργασίας χωρίς πρόσβαση σε δεδομένα παραγωγής και ορίστε τυχόν απαραίτητες τιμές περιβάλλοντος εκτός συνομιλίας και Git. Όπου είναι δυνατό, χρησιμοποιήστε διαπιστευτήρια δοκιμών με περιορισμένα δικαιώματα για να ελέγξετε το έργο. Αν το έργο εξαρτάται από βάση δεδομένων ή αρχεία, επαναφέρετε πρώτα ένα επιτρεπόμενο σύνολο δεδομένων δοκιμών σύμφωνα με τις οδηγίες του· τα ίδια αρχεία πηγαίου κώδικα δεν υποκαθιστούν αυτά τα δεδομένα.
Μετά την εγκατάσταση, εκτελέστε τους υπάρχοντες ελέγχους από το README: δοκιμές και build, αν παρέχονται. Τα ονόματα των εντολών εξαρτώνται από το έργο. Η επιτυχής εγκατάσταση των εξαρτήσεων δεν σημαίνει ακόμη ότι η εφαρμογή λειτουργεί.
Ανοίξτε το αντίγραφο εργασίας στο Hermes
Στο τερματικό του διακομιστή, μεταβείτε στη ρίζα του νέου αντιγράφου και εκκινήστε τον agent που είναι ήδη εγκατεστημένος:
cd /absolute/path/to/my-project
hermes
Εδώ, το /absolute/path/to/my-project είναι ένα σύμβολο κράτησης θέσης για την πλήρη διαδρομή προς το έργο σας. Στην οθόνη εκκίνησης του Hermes, ελέγξτε τον κατάλογο εργασίας και το περιβάλλον στο οποίο εκτελούνται οι εντολές τερματικού. Αυτή η μέθοδος εκκίνησης προορίζεται για το τοπικό περιβάλλον τερματικού του Hermes στον διακομιστή. Αν έχει ρυθμιστεί SSH ή Docker, ο agent μπορεί να εκτελεί εντολές σε άλλο περιβάλλον· επιβεβαιώστε πρώτα ποια διαδρομή του έργου είναι διαθέσιμη εκεί.
Ζητήστε από τον agent να επιβεβαιώσει τον πραγματικό φάκελο εργασίας του χρησιμοποιώντας το εργαλείο τερματικού του και, στη συνέχεια, να διαβάσει το README και τις οδηγίες του έργου. Μην θεωρείτε επαρκή επιβεβαίωση το όνομα ενός φακέλου σε μήνυμα.
Η παρακάτω σειρά αναφέρεται σε συγκεκριμένη έκδοση της τεκμηρίωσης και μπορεί να διαφέρει από εκείνη της εγκατεστημένης έκδοσης του Hermes. Ελέγξτε τις τρέχουσες οδηγίες στη συνεδρία σας. Το Hermes υποστηρίζει το AGENTS.md, αλλά το αν διαβάζει αυτό το αρχείο εξαρτάται από τις προτεραιότητες των αρχείων πλαισίου. Σύμφωνα με την επίσημη τεκμηρίωση του Hermes, επιλέγεται ένας τύπος αρχείου οδηγιών: .hermes.md, έπειτα AGENTS.override.md, AGENTS.md, CLAUDE.md και .cursorrules. Πριν ξεκινήσετε την εργασία, ελέγξτε αν υπάρχει παλιό .hermes.md ή προσωπικό AGENTS.override.md: μην υποθέσετε ότι ο agent θα εφαρμόσει κατ' ανάγκη το AGENTS.md παράλληλα με αυτό.
Στις επιλεγμένες οδηγίες, διατηρήστε τον σκοπό του έργου, τις εντολές ελέγχου και τους περιορισμούς στις αλλαγές. Μην τις μετατρέψετε σε αρχείο συνομιλιών. Αν χρειάζεται να μεταφέρετε και τις ρυθμίσεις των ίδιων των agent, πρόκειται για διαφορετική διαδικασία· το εύρος της εξηγείται στον οδηγό μετεγκατάστασης από το Claude Code στο Codex.
Αναθέστε στον agent μία εργασία και ελέγξτε το αποτέλεσμα
Ξεκινήστε διαβάζοντας το έργο, χωρίς να κάνετε αλλαγές. Για παράδειγμα:
We are working with an existing project in the folder I specified.
Confirm the actual working directory using the terminal tool.
Read the README and the current project instructions.
Do not open files containing secrets or print environment values.
List the check commands and the prerequisites for running them.
For now, do not change or install anything, or push to the repository.
Στη συνέχεια, συμφωνήστε σε μία μικρή εργασία, όπως η διόρθωση κειμένου στη διεπαφή. Καθορίστε τα αρχεία ή την περιοχή που θα αλλάξουν και απαγορεύστε τις παρεμπίπτουσες ενημερώσεις εξαρτήσεων. Αν θέλετε να διαχωρίσετε το πείραμα από το κύριο αντίγραφο, μάθετε πρώτα για ένα ξεχωριστό αντίγραφο εργασίας Git worktree.
Αποδεχτείτε το αποτέλεσμα με βάση τις αλλαγές στα αρχεία και τους επαναληπτικούς ελέγχους του έργου. Πριν από ένα πείραμα που ενδέχεται να αποτύχει, αποθηκεύστε το αντίγραφο προέλευσης και ένα σημείο επαναφοράς· μην ζητήσετε από τον agent να επαναφέρει μαζικά όλες τις αλλαγές. Αν αποτύχει ένας έλεγχος, συγκρίνετε το σφάλμα με το αντίγραφο προέλευσης: αυτό βοηθά να διακρίνετε ένα πρόβλημα μεταφοράς από ένα ελάττωμα που υπήρχε ήδη.
Η μεταφορά μπορεί να θεωρηθεί ολοκληρωμένη όταν έχει τοποθετηθεί η απαιτούμενη έκδοση των αρχείων πηγαίου κώδικα, έχει αποκατασταθεί το περιβάλλον, τα απαραίτητα δεδομένα είναι διαθέσιμα σε ασφαλές περιβάλλον δοκιμών, οι έλεγχοι περνούν και το Hermes λειτουργεί σε αυτόν ακριβώς τον φάκελο. Η δημοσίευση της εφαρμογής για επισκέπτες είναι ξεχωριστό επόμενο στάδιο και δεν αποτελεί μέρος αυτού του ελέγχου.
Γνωρίστε το Ailoot.
Περισσότερες λεπτομέρειες
Ερωτήσεις και απαντήσεις: Μεταφορά ενός έργου από το Codex στο Hermes σε διακομιστή
Η κλωνοποίηση αποθετηρίου μεταφέρει ολόκληρο το περιβάλλον εργασίας;
Όχι. Το Git clone δεν φέρνει αγνοούμενα αρχεία, εξωτερικές βάσεις, ανεβασμένα δεδομένα, μυστικά ή ιστορικό συνομιλιών agent. Επαναφέρετε χωριστά τις απαιτούμενες εξαρτήσεις και τα επιτρεπόμενα δοκιμαστικά δεδομένα σύμφωνα με τις οδηγίες έργου.
Τι συγκρίνω πριν επεξεργαστώ το αντίγραφο διακομιστή;
Συγκρίνετε αποθηκευμένο κλάδο και αναγνωριστικό commit με το αρχικό αντίγραφο, εξετάστε αλλαγές χωρίς commit και ζητήστε από το Hermes να επαληθεύσει τον πραγματικό κατάλογο εργασίας του. Έπειτα εκτελέστε τους υπάρχοντες ελέγχους έργου σε εκείνο ακριβώς το αντίγραφο.