Git Worktree untuk AI Agent: Isolasi Agent Paralel di Satu Repo

Git worktree untuk AI agent memberi setiap coding agent di sebuah repo (Claude Code, Codex, OpenCode) branch dan file miliknya sendiri. MXterm Pro mengotomatiskannya: centang isolasi worktree saat membuat workspace, dan setiap pane agent terbuka di worktree sendiri pada branch baru, tanpa git worktree add manual. Tanpa isolasi, git checkout atau git stash dari satu agent bisa menulis ulang file yang sedang diedit agent lain.
Siapa yang Benar-Benar Butuh Isolasi Worktree per Agent
Satu agent yang bekerja sendirian di repo tidak punya apa pun yang bisa bentrok dengannya. Direktori kerja utama sudah cukup, dan mengaktifkan isolasi tidak memberi Anda manfaat.
Isolasi baru berguna saat Anda menjalankan dua agent atau lebih di repo yang sama pada waktu yang sama. Swarm Task Orchestrator di MXterm Pro menyediakan dua preset untuk itu. "Full Swarm Trio (Lead, QA, Docs)" menjalankan Claude Code, Codex, dan OpenCode sekaligus. "Feature Duo (Dev + Tester)" memasangkan Claude Code dengan Codex. Keduanya mengaktifkan isolasi worktree secara default saat Anda meluncurkannya.
Preset tidak wajib. Buka tab baru, pilih agent, lalu centang "Isolasi fitur di git worktree" sendiri di composer. Kotak ini nonaktif secara default dan hanya berfungsi di repositori git. Pane yang Anda split dari workspace itu setelahnya terbuka di folder workspace, bukan di worktree sendiri.
Panduan terkaitTerminal Docker di Mac: Build Berdampingan dengan Deploy SSHCara MXterm Pro Membuat Worktree untuk Setiap Pane Agent
Pengaturannya muncul di dua tempat dengan fungsi yang sama: layar workspace baru ("Isolasi fitur di git worktree") dan dialog Swarm Task Orchestrator ("Isolasi fitur di Git Worktrees") yang tampil saat Anda menjalankan preset. Dokumentasi agent dan Control Room (sebelumnya War Room) menjelaskan pengaturan yang sama.
Saat aktif, setiap pane agent baru mendapat checkout sendiri di direktori .worktrees/ milik repo. Branch-nya dibuat baru dengan nama swarm/<adjective>-<noun>, misalnya swarm/brave-otter. Pane terminal biasa tanpa agent tetap terbuka di root repo, tidak disentuh.
Nama dipilih secara acak dari kumpulan sekitar 17.000 kombinasi, bukan skema bernomor, sehingga dua kali peluncuran tidak akan kebetulan memakai ulang worktree lama. Jika nama sudah terpakai, MXterm mencoba lagi dengan akhiran angka (swarm/brave-otter-2, lalu -3 dan seterusnya), paling banyak lima nama sebelum menyerah untuk pane itu.
MXterm menambahkan direktori .worktrees/ ke .gitignore milik repo secara otomatis saat pertama kali membuatnya. Checkout sekali pakai ini tidak pernah muncul sebagai perubahan untracked di working tree utama Anda.
Jika folder yang Anda tunjuk bukan repositori git, isolasi dilewati dan tidak dipaksakan. Sampai 1.0.21, app menjalankan git init, git add ., dan sebuah commit di folder seperti itu, yang bisa memasukkan .env atau private key ke riwayat yang tidak diminta siapa pun. Sejak 1.0.22, app tidak lagi menjalankan git init di sana.
Composer sekarang menampilkan "Folder ini bukan repositori git, jadi agen akan memakainya bersama (tanpa isolasi worktree)". Pane terbuka tanpa isolasi di root folder, dan masing-masing membawa pemberitahuan yang bisa ditutup untuk menjelaskan alasannya. Jalankan git init dan buat commit pertama Anda sendiri jika ingin isolasi.
Ada satu pengecualian: di repositori yang sudah ada tetapi belum punya commit, composer New Workspace dan dialog Swarm Task Orchestrator membuat .gitkeep kosong dan hanya meng-commit file itu sebagai "Initial commit" sebelum membuat worktree (file lain di folder tidak di-stage), karena worktree butuh commit sebagai titik awal branch.
Header tiap pane menampilkan nama branch worktree-nya sebagai badge kecil. Anda bisa tahu branch mana yang sedang dipakai sebuah agent tanpa membuka panel git.
Pembuatan dilakukan satu per satu, dengan sengaja. Pemanggilan git worktree add serentak di satu repo berebut file lock git, dan kegagalan sesaat akan menghilangkan isolasi sebuah pane. Jika worktree gagal dibuat (galat git lock, ruang disk habis, atau sebab lain, setelah bentrok nama dicoba ulang), pane itu kembali ke root repo dan mencatat peringatan. Pane lain di workspace tetap terbuka.
Apa yang Dicegah Isolasi (dan Apa yang Tidak)
Ambil kasus konkret: Anda menjalankan "Feature Duo", lalu Claude Code mendapat branch dan worktree sendiri, dan Codex mendapat yang lain.
Tanpa isolasi, kedua agent memakai satu direktori kerja. Jika Codex menjalankan git checkout atau git stash di tengah tugas, file yang sedang dibuka Claude Code di disk berubah di bawahnya. Pemanggilan tool berikutnya dari kedua agent tidak tahu mengapa file yang baru ditulisnya tidak cocok dengan isi yang dibaca kembali.
Dengan worktree terpisah, setiap agent punya salinan tiap file sendiri, di-checkout ke branch sendiri. Ini mengurangi kemungkinan checkout satu agent menulis ulang file yang sedang dibuka agent lain.
Isolasi tidak menghapus semua jenis konflik. Dua agent yang mengerjakan fitur yang sama dari sudut berbeda tetap bisa menghasilkan branch yang nanti perlu merge sungguhan yang ditinjau manusia, dan MXterm tidak mengotomatiskan bagian itu. Yang dihilangkan isolasi lebih sempit dan murni mekanis: perebutan satu direktori kerja bersama di tingkat filesystem.
Worktree bukan sandbox. Pane tetap shell biasa, jadi agent bisa keluar dari foldernya dan menjalankan perintah apa pun yang bisa dijalankan user Anda. Semua worktree juga berbagi satu .git di balik repositori. Isolasi menjaga file para agent tetap terpisah, tetapi tidak membatasi apa yang bisa mereka lakukan.
Menambah, Menggabungkan, dan Menghapus Worktree di Tengah Sesi
Isolasi tidak hanya ditentukan saat workspace dibuat. Agent bisa membuat pane worker terisolasi baru di tengah sesi untuk sub-tugas yang didelegasikan, memakai tool worktree.spawn. Ini hanya berfungsi di workspace yang dibuat dengan isolasi worktree aktif.
Merge tetap manual, dengan sengaja. Setelah branch sebuah agent siap, gabungkan dengan cara biasa: git merge swarm/brave-otter dari worktree utama, atau push lalu buka pull request, mana pun yang sudah dipakai tim Anda. Tugas MXterm berhenti pada pembuatan dan pembersihan worktree. MXterm tidak menentukan nasib kode di dalamnya.
Penghapusan sengaja dibuat konservatif, dan dua pemanggil memakai dua jalur terpisah. Agent hanya bisa menghapus worktree tanpa perubahan yang belum di-commit. Jika ada, penghapusan langsung ditolak, tanpa opsi menimpa.
Menghapus dari UI bekerja berbeda. "Bersihkan worktrees…" ada di sebelah daftar worktree di panel Git. Perintah ini memangkas entri usang (worktree yang direktorinya sudah hilang) tanpa konfirmasi, lalu membuka dialog.
Di dialog, worktree dengan file yang belum di-commit ditampilkan per branch beserta jumlah file masing-masing. Secara default kotaknya tidak dicentang, jadi Anda mencentang satu per satu yang ingin dihapus. Worktree tanpa perubahan hanya diringkas sebagai jumlah dan dihapus saat Anda mengonfirmasi.
Dialog hanya menghitung commit yang mendahului upstream sebuah branch, dan branch buatan MXterm tidak punya upstream, jadi untuk branch itu hasilnya nol. Periksa sendiri commit di branch sebelum Anda mengonfirmasi, karena penghapusan juga menghapus branch dengan git branch -D.
Tidak ada dari kedua jalur yang berjalan otomatis. Menutup pane, workspace, atau seluruh app tidak pernah menghapus worktree dengan sendirinya. Pembersihan hanya terjadi saat Anda, atau agent yang bekerja dalam batasnya yang ketat, melakukannya dengan sengaja.
Satu batasan yang perlu diketahui sejak awal: direktori worktree tidak pernah diganti namanya setelah dibuat, karena state sesi agent terikat ke path absolutnya. Anda bebas mengganti nama branch git di dalamnya, tetapi tidak foldernya.
Free vs Pro: Apa yang Sebenarnya Dibatasi
Isolasi worktree bukan fitur yang hanya ada di Pro. Cara kerjanya sama di kedua paket.
Yang dibatasi adalah ukuran sebuah Control Room. Secara default, Free tidak membatasi jumlah pane, tetapi membatasi satu Control Room (agent yang dikelompokkan untuk berbagi konteks antar-agent) maksimal 2 anggota. Batas Free lainnya, 5 host SSH tersimpan dan 1 Mesin tersimpan, tidak berkaitan dengan worktree. Pro menghapus batas-batas ini.
Preset "Feature Duo" (2 agent, 2 worktree) muat dengan nyaman di batas Control Room 2 anggota milik Free. "Full Swarm Trio" punya tiga agent, jadi Control Room dengan ketiganya membutuhkan Pro.
Git Worktree vs iTerm2, Warp, Termius, dan MobaXterm
Alternatif gratis untuk otomatisasi MXterm bukan sebuah app lain. Alternatifnya adalah git worktree untuk AI agent yang Anda siapkan sendiri, dengan perintah git worktree add dan git worktree remove biasa di terminal apa pun yang sudah Anda pakai. Cara ini berjalan baik untuk satu atau dua agent.
Yang dihilangkan MXterm Pro adalah pekerjaan administrasinya saat jumlah agent bertambah: merencanakan nama branch yang unik, membuat worktree, menyambungkan direktori kerja pane ke worktree itu, dan mencegah worktree yang masih berisi pekerjaan belum di-commit terhapus secara tidak sengaja.
iTerm2 adalah emulator terminal macOS yang sangat baik dan mendukung scripting secara mendalam. Seperti terminal biasa lainnya, iTerm2 tidak membuatkan git worktree untuk Anda. Menjalankan alur ini di sana berarti mengetik git worktree add sendiri untuk setiap pane, lalu harus ingat menjalankan git worktree remove dan menghapus branch sendiri nanti.
Warp juga menempatkan AI agent di posisi utama terminal. Warp bisa menjalankan beberapa agent sekaligus di tab atau pane terpisah, dan panduan multi-agent miliknya menyarankan satu git worktree per agent (lihat MXterm Pro vs Warp). Fokus MXterm Pro lebih sempit: saat isolasi aktif, MXterm Pro sendiri yang membuat branch dan worktree untuk tiap pane agent.
SSH multi-pane, Command Recipes (Cmd+J) dan Control Room (sebelumnya War Room) multi-agent: Anda bisa mulai gratis.
Sudah punya MXterm Pro? Baca panduan penyiapan →
Baru mengenal MXterm Pro? Lihat harga →
Pertanyaan yang Sering Diajukan
Tidak. MXterm Pro merencanakan nama branch dan menjalankan perintah worktree add dan remove untuk Anda setiap kali isolasi aktif. Mengetiknya sendiri bersifat opsional.
Tidak ada. Menutup pane, workspace, bahkan keluar dari MXterm Pro tidak pernah menghapus worktree. Anda membersihkannya secara eksplisit, lewat salah satu dari dua cara. Pemanggilan tool oleh agent hanya berhasil jika worktree benar-benar bersih. Atau pakai "Bersihkan worktrees…" di sebelah daftar worktree di panel Git setelah branch itu selesai Anda pakai.
Ada, tetapi jauh lebih sedikit daripada clone kedua yang utuh. Git worktree berbagi riwayat commit dan objek repositori lewat .git yang sama. Hanya file hasil checkout dan sedikit metadata per worktree yang digandakan. Jadi tambahan ruangnya mengikuti ukuran working tree Anda, bukan seluruh riwayat repo.
MXterm Pro tidak menggabungkan branch untuk Anda, dan itu disengaja. Setelah branch swarm/<name> milik agent siap, gabungkan dengan cara biasa dari worktree utama (git merge swarm/brave-otter) atau push lalu buka pull request, mana pun yang sudah dipakai tim Anda.
Isolasi dilewati dan pane terbuka dengan memakai folder itu bersama, disertai pemberitahuan di tiap pane yang menjelaskan alasannya. MXterm Pro tidak menjalankan git init di sana. Jalankan git init dan buat commit pertama Anda sendiri, lalu buat workspace lagi.