Kalau Anda menjalankan lebih dari satu agen coding di satu repositori, Anda butuh git worktree. Dengan worktree, setiap agen bekerja di branch-nya sendiri, di folder-nya sendiri, pada waktu yang sama, tanpa saling injak.
Apa itu git worktree?
Clone biasa punya satu working tree: satu folder, satu branch yang di-checkout. Worktree adalah folder kerja tambahan yang terhubung ke repositori yang sama, dengan branch lain yang di-checkout. Semua worktree berbagi satu riwayat .git, jadi commit yang dibuat di salah satunya langsung terlihat di yang lain, tapi file-nya terpisah.
Untuk agen, artinya:
- Claude Code bisa mengedit file di
../atlas-authpadafeat/auth - Codex bisa mengedit file di
../atlas-searchpadafeat/search - Anda tetap meninjau dan menjalankan aplikasi di folder utama pada
main
Tidak ada yang menimpa perubahan orang lain.
Buat satu worktree per tugas
Dari folder repositori utama Anda:
# new branch + new folder next to the repo
git worktree add ../atlas-auth -b feat/auth
# another one, starting from a specific branch
git worktree add ../atlas-search -b feat/search origin/main
# see them all
git worktree listLalu jalankan agen di masing-masing folder:
cd ../atlas-auth && claude
cd ../atlas-search && codexBeri nama folder worktree sesuai tugasnya. Sebulan lagi atlas-auth masih bermakna; wt2 tidak.
Atau biarkan Claude Code yang membuat worktree
Versi Claude Code terbaru bisa membuatkan worktree untuk Anda:
claude --worktree feature-auth # or: claude -w feature-authPerintah ini membuat worktree di .claude/worktrees/feature-auth/ pada branch baru bernama worktree-feature-auth, lalu menjalankan Claude di dalamnya. Jalankan lagi dengan nama lain di terminal kedua untuk sesi terisolasi yang kedua. Anda juga bisa meminta Claude untuk “work in a worktree” di tengah sesi.
Beberapa detail dari dokumentasi worktree Claude Code:
- Tambahkan
.claude/worktrees/ke.gitignoresupaya file worktree tidak muncul sebagai untracked di checkout utama. - Repositorinya harus punya minimal satu commit.
- Saat Anda keluar, Claude menghapus worktree yang bersih (dengan bertanya dulu untuk worktree yang diberi nama) dan bertanya apakah worktree yang masih punya perubahan mau disimpan.
- File
.worktreeincludeberisi daftar file yang di-ignore git, seperti.env, untuk disalin ke setiap worktree baru.
Pakai claude --worktree kalau Claude Code satu-satunya agen untuk tugas itu. Pakai git worktree add biasa kalau Anda ingin memilih nama folder dan branch sendiri, atau menjalankan Codex atau agen lain di worktree tersebut.
Siapkan setiap worktree sebelum agen mulai
Worktree baru hanya berisi file yang dilacak git. Sebelum menyerahkannya ke agen:
- Instal dependensi.
node_modules, virtualenv, dan folder build tidak dibagi. Jalankannpm install(atau padanannya) di setiap worktree. Package manager dengan store bersama, seperti pnpm, membuat proses ini cepat. - Salin config yang tidak dilacak. File
.envdan pengaturan lokal biasanya di-ignore git, jadi salin apa yang dibutuhkan aplikasi untuk berjalan. Denganclaude --worktree, daftarkan di.worktreeincludesaja. - Pakai port yang berbeda. Dua dev server tidak bisa sama-sama listen di port 3000. Jalankan yang kedua di port lain, misalnya
PORT=3001 npm run dev. - Bagikan instruksi lewat file yang dilacak.
CLAUDE.mddanAGENTS.mddi-commit ke git, jadi setiap worktree otomatis mendapatkannya.
Review, merge, dan bersih-bersih
Saat agen selesai:
# in the worktree: check the work
git diff main...feat/auth
npm test
# in the main folder: merge
git merge feat/auth
# remove the worktree folder and its registration
git worktree remove ../atlas-auth
git branch -d feat/authKalau Anda menghapus folder worktree secara manual, jalankan git worktree prune untuk membersihkan entri yang basi.
Jebakan yang sering terjadi
- “Branch is already checked out.” Satu branch hanya bisa di-checkout di satu worktree dalam satu waktu. Buat branch baru untuk setiap worktree.
- Worktree yang terlupakan. Worktree lama membuat branch tetap hidup dan memakan ruang disk. Sesekali jalankan
git worktree list. - Perubahan yang belum di-commit saat menghapus.
git worktree removemenolak kalau worktree masih punya perubahan. Commit atau stash dulu, atau pakai--forcekalau Anda memang ingin membuangnya. - Agen mengedit folder utama. Jalankan setiap agen dari dalam folder worktree-nya, bukan dari root repositori.
Worktree di Vibe Console
Vibe Console membuat worktree tetap terlihat selama agen bekerja di dalamnya:
- Tab Worktree di Kontrol Sumber (⌘⇧G) menampilkan setiap worktree beserta branch-nya, menandai worktree utama dan checkout yang detached.
- Seret worktree ke terminal untuk menempelkan path-nya, lalu jalankan agen di sana dengan ⌘K.
- Hapus worktree membersihkan worktree yang sudah selesai, dan meminta Paksa Buang kalau masih ada perubahan lokal. Worktree utama dilindungi.
- Grid menampilkan hingga sembilan terminal, jadi agen di setiap worktree bisa punya panel sendiri. Lihat menjalankan agen secara paralel.
Buat worktree dengan git worktree add atau claude --worktree seperti di atas; keduanya langsung muncul di daftar.
FAQ
Apakah worktree makan banyak ruang disk?
Hanya untuk file yang di-checkout dan apa pun yang Anda instal di dalamnya. Riwayat git-nya dibagi.
Lebih baik pakai worktree atau clone terpisah?
Worktree. Semuanya berbagi satu riwayat, jadi branch dan commit langsung tersedia di mana-mana, dan bersih-bersihnya cukup satu perintah.
Bisakah dua agen berbagi satu worktree?
Hanya kalau paling banyak satu di antaranya yang mengedit file. Agen reviewer yang hanya membaca bisa berbagi worktree dengan agen yang menulis kode.
Coba gratis selama 14 hari: unduh Vibe Console.
