Codex worktree: salinan kerja terpisah untuk tugas kedua
MarkdownSalinan kerja Codex CLI 0.155.1: flag worktree eksperimental, HEAD sumber, pemeriksaan folder baru, penyimpanan hasil, dan penghapusan yang aman.
Baca artikel lengkap
Poin utama
Di Codex CLI versi 0.155.1, Anda membuat salinan kerja terpisah untuk tugas kedua dengan codex --enable worktrees --worktree. Fitur ini bersifat eksperimental dan dinonaktifkan secara default: jika Anda belum mengaktifkannya, Codex akan menolak untuk dimulai dengan --worktree tanpa --enable worktrees. Salinan dibuat dari commit terbaru proyek asli (HEAD), tanpa perubahan yang belum di-commit, dalam keadaan detached HEAD—tanpa branch bernama yang terpasang.
Misalnya, Anda menggunakan Codex CLI untuk melakukan refaktor pada satu modul ketika muncul tugas kedua: menulis pengujian untuk modul lain. Membuka sesi kedua di folder yang sama berisiko: perubahan dari tugas pertama dan kedua mudah tercampur. Flag --worktree membuat folder terpisah untuk proyek yang sama bagi tugas kedua, sehingga folder untuk tugas pertama tetap tidak tersentuh.
Sumber praktis untuk bekerja dengan agen secara paralel: dokumentasi Ailoot.
Apa yang dibuat oleh --worktree dan file apa saja yang masuk ke salinan
Dalam istilah Git, worktree adalah folder kerja tambahan yang terhubung ke repositori yang sama: worktree berbagi riwayat commit, tetapi memiliki kumpulan file sendiri di disk. Di Codex CLI 0.155.1, flag --worktree menggunakan mekanisme Git ini untuk memulai sesi agen baru di folder terpisah, sehingga folder tempat tugas pertama sedang berjalan tetap tidak tersentuh.
Salinan kerja baru berisi file dari commit yang ditunjuk oleh HEAD proyek asli saat peluncuran—commit terbaru, bukan keadaan terakhir kali Anda menyimpan file di editor. Perintah ini tidak memindahkan perubahan yang belum di-commit atau file baru. Menyimpan di editor tidak sama dengan melakukan commit di Git. Jika folder pertama masih berisi perubahan yang belum di-commit saat Anda meluncurkan tugas kedua, perubahan tersebut hanya akan tetap berada di folder itu.
Ini bukan cadangan seluruh repositori atau isolasi seluruh komputer. Ini adalah folder kerja kedua untuk proyek yang sama, dengan akses ke branch dan riwayat commit yang sama. Untuk mekanisme serupa di alat lain, lihat Claude Code dan git worktree: tugas paralel.
Persiapan: versi, kepercayaan proyek, dan commit
Periksa tiga hal sebelum memulai. Jalankan perintah dari folder proyek asli.
Pertama, periksa versi Codex CLI. Petunjuk ini berlaku untuk versi 0.155.1; untuk versi lain, periksa perilaku flag secara terpisah:
codex --version
Kedua, Anda memerlukan proyek Git lokal yang HEAD-nya menunjuk ke commit yang ada—dengan kata lain, repositori harus memiliki setidaknya satu commit. Jika tidak, tidak ada yang bisa dijadikan sumber untuk membuat salinan.
Ketiga, sumbernya harus tepercaya: jika proyek secara eksplisit ditandai sebagai tidak tepercaya, memulai dengan --worktree akan gagal sebelum salinan dibuat. Jika Anda baru menyiapkan Codex CLI, persiapan dasarnya dijelaskan dalam Codex (OpenAI): apa itu dan cara memulai.
Sebelumnya, periksa daftar salinan kerja yang sudah ada di repositori ini. Anda dapat menggunakannya sebagai pembanding setelah peluncuran:
git worktree list
Folder terpisah membantu menjaga tugas tetap terpisah. Untuk pendekatan umum dalam bekerja dengan agen, sumber praktis di dokumentasi Ailoot dapat membantu.
Langkah-langkah: mulai salinan terpisah untuk tugas kedua
Aktifkan fitur eksperimental dan mulai sesi dengan salinan terpisah
Jalankan perintah dari folder proyek asli, tempat Anda sudah mengerjakan tugas pertama.
codex --enable worktrees --worktreeHasil yang diharapkan: Codex membuat salinan kerja baru proyek dari HEAD saat ini dan membuka sesi agen di sana. Salinan berada dalam keadaan detached HEAD, tanpa branch bernama yang terpasang. Begitulah cara kerja flag ini pada versi 0.155.1.
Daftarkan kembali salinan kerja di terminal lain pada proyek asli
git worktree listHasil yang diharapkan: keluaran berisi satu baris tambahan dengan jalur salinan baru dan penanda detached HEAD (atau branch, jika ada). Daftar ini menunjukkan bahwa Git telah mendaftarkan salinan tersebut, tetapi tidak memastikan bahwa agen telah menyelesaikan tugas. Untuk memastikan file tersedia, buka folder di jalur yang tercantum dan periksa isinya.
Cara memeriksa hasil dan menyimpan pekerjaan Anda
Setelah tugas kedua di salinan baru selesai, Anda perlu menyimpan dan memindahkan hasilnya secara terpisah. Perintah --worktree tidak menggabungkan perubahan ke branch utama atau memindahkan hasil secara otomatis. Salinan tetap dalam keadaan detached HEAD, sehingga membuat commit di dalamnya saja tidak membuat branch baru. Jika Anda perlu menyimpan commit tersebut, kaitkan ke sebuah branch atau pindahkan ke proyek utama sebelum menghapus folder salinan.
Jangan hapus folder salinan sebelum hasilnya disimpan. Memeriksa bahwa folder kerja bersih bukan pengganti penyimpanan commit yang Anda perlukan: commit tersebut mungkin masih belum terhubung ke branch mana pun.
Jika Anda mengerjakan tugas di alat yang berbeda pada waktu yang sama, rencanakan terlebih dahulu cara agar tugas-tugas itu tidak saling mengganggu. Bekerja dengan dua agen secara bersamaan dibahas dalam Claude Code dan Codex secara bersamaan.
Jika startup terhenti: tempat menemukan salinan
Memulai dengan --worktree dapat gagal karena beberapa alasan:
- fitur belum diaktifkan sebelumnya dan perintah peluncuran tidak menyertakan
--enable worktrees: Codex akan menolak untuk dimulai dengan flag--worktree; - Anda berada di folder yang salah, atau tidak ada commit: jika folder saat ini bukan repositori Git atau belum memiliki commit, tidak ada yang bisa dijadikan sumber untuk membuat salinan;
- proyek secara eksplisit ditandai sebagai sumber yang tidak tepercaya: Codex akan menolak untuk memulai sesi dengan
--worktree. Pastikan terlebih dahulu bahwa Anda telah membuka proyek yang benar. Jangan mengubah status kepercayaannya secara otomatis.
Jika sesi tidak berhasil terhubung ke salinan yang baru dibuat—misalnya, karena prosesnya terhenti—folder kerja tidak akan dihapus secara otomatis. Pertama, periksa daftar salinan kerja, lalu sebelum menghapus apa pun, pastikan tidak ada sesi Codex CLI yang masih menggunakan salinan ini:
git worktree list
Buka folder dan simpan perubahan yang Anda perlukan sebelum menghapusnya. Salinan mungkin tetap ada meskipun sesi agen gagal dimulai. Jika salinan tersebut ada, tidak lagi diperlukan, dan dipastikan tidak sedang digunakan oleh sesi mana pun, hapus secara manual dengan git worktree remove dari repositori asli, dengan menyebutkan jalur foldernya. Jangan tambahkan --force: jika salinan berisi file yang belum di-commit atau tidak dilacak, perintah akan menolak untuk menghapusnya. Jika perintah menolak, periksa isi folder tanpa menonaktifkan perlindungan tersebut.
Saat memperbarui Codex CLI, periksa kembali codex --version dan ulangi pemeriksaan dengan git worktree list: flag eksperimental dapat berperilaku berbeda antarversi.
Sumber daya dan alat lainnya: Ailoot.
Rincian selengkapnya
Pertanyaan tentang Codex worktree: salinan kerja terpisah untuk tugas kedua | Ailoot
Apakah worktree kedua memuat edit yang belum disimpan atau di-commit?
Tidak. Dalam versi CLI yang dijelaskan, worktree dimulai dari commit HEAD repositori sumber. Perubahan belum di-commit dan file baru tetap di folder asli, sehingga menyimpan file pada editor saja tidak cukup untuk memindahkannya.
Apakah worktree detached yang bersih aman dihapus?
Folder bersih masih dapat memiliki commit tanpa cabang bernama. Pertahankan atau pindahkan commit itu terlebih dahulu, pastikan tidak ada sesi yang memakai worktree, lalu gunakan penghapusan worktree Git biasa tanpa memaksa melewati perlindungan.