Git worktree bikin satu repository punya beberapa folder kerja aktif sekaligus. Setiap folder bisa diisi satu AI coding agent dengan branch masing-masing, jadi refactor, nulis test, dan perbaikan bug bisa berjalan paralel tanpa saling menimpa file. Perintah intinya cuma satu baris: git worktree add. Sisanya cuma soal kebiasaan merapikan folder dan memilih task yang benar-benar independen.
Artikel ini membahas konsep dasarnya, perintah yang dipakai sehari-hari, pola kerja paralel bersama agent seperti Claude Code, tabel perbandingan, sampai daftar kesalahan yang paling sering muncul di lapangan.
Alur vibe coding yang umum itu berurutan. Buka terminal, kasih task ke agent, tunggu lima sampai lima belas menit sementara dia membaca file, mengedit kode, dan menjalankan test. Selesai, review, commit, baru task kedua dimulai. Mesin kencang dipakai cuma segelintir persen kemampuannya.
Lalu bagaimana kalau terminal kedua dibuka dan agent lain dijalankan di folder yang sama? Rawan sekali. Ada empat kegagalan klasik yang paling sering dilaporkan praktisi, sebagaimana dirangkum panduan orkestrasi agent dari Augment Code:
OrderService.java tepat saat Agent B masih membaca versi lamanya. Tidak ada error yang muncul, hanya hasil akhir yang aneh.index.lock, dan kalau prosesnya crash, lock itu nyangkut sampai dihapus manual sementara semua agent lain ikut macet.Solusi untuk semua ini sebenarnya sudah lama ada. Panduan resmi Git tentang worktree mencatat fiturnya hadir sejak versi 2.5 tahun 2015. Selama lebih dari satu dekade fitur ini jarang disentuh karena manusia jarang butuh lima branch aktif dalam waktu yang sama. Era agent coding mengubah hitungannya.
Perhitungan waktunya gampang dibayangkan. Lima task dengan rata-rata sepuluh menit per agent butuh lima puluh menit kalau dikerjakan berurutan. Dengan worktree, totalnya turun jadi sekitar sepuluh menit ditambah durasi review. Selisihnya makin terasa saat ada task panjang seperti migrasi besar yang ikut masuk antrean.
Worktree adalah folder kerja tambahan yang menempel ke repository yang sama. Bayangkan begini: alih-alih clone repo lima kali dan menyimpan lima salinan riwayat git, worktree membuat lima checkout ringan yang berbagi satu database objek git.
Tiap worktree punya HEAD sendiri, index sendiri, dan foldernya sendiri. Yang dibagi hanya riwayat commit, refs, config, dan remote. Konsekuensi praktisnya:
Dari folder utama proyek, jalankan:
git worktree add ../proyek-refactor -b fitur/refactor-grid
git worktree add ../proyek-tests -b fitur/tests-api
git worktree list
Perintah pertama membuat folder proyek-refactor di sebelah folder utama, lengkap dengan branch baru bernama fitur/refactor-grid. Perintah kedua sama saja untuk task test. Perintah ketiga menampilkan daftar semua worktree aktif beserta branch dan path-nya.
Banyak developer menyimpan worktree di folder khusus di sebelah repo utama supaya rapi, misalnya proyek/worktrees/. Penempatan bebas, yang penting konsisten. Saya sendiri memilih menaruh worktree sebagai folder saudara repo utama, misalnya proyek dan proyek-worktrees berdampingan. Saat mencari folder lewat quick open di editor, langsung kebaca mana repo utama dan mana worktree. Detail kecil yang menghemat waktu tiap hari.
Selesai bekerja, rapikan:
git worktree remove ../proyek-refactor
Branch hasil merge tetap aman karena riwayatnya tersimpan di database objek bersama. Foldernya hilang, pekerjaannya tidak ikut hilang. Satu hal yang perlu diingat: jangan paksa dua worktree memegang branch yang sama dengan flag paksa. Pengaman itu yang mencegah dua workspace saling menimpa status.
Claude Code punya dukungan bawaan lewat flag --worktree yang bisa dipendekkan jadi -w. Session langsung berjalan di worktree terisolasi tanpa setup manual. Cara manual juga sah: buka tiap folder worktree di terminal terpisah, lalu jalankan agent dari sana.
# Terminal 1, folder utama
cd ~/code/proyek && claude
# Terminal 2, worktree task test
cd ~/code/proyek/worktrees/proyek-tests && claude
# Terminal 3, worktree refactor
cd ~/code/proyek/worktrees/proyek-refactor && claude
Tool lain mengikuti pola serupa. Cursor cukup dibuka ke folder worktree sebagai workspace. Copilot CLI dijalankan dari dalam folder worktree. Prinsipnya sederhana: worktree hanyalah direktori biasa, tool apa pun yang bekerja per direktori bisa dipakai. Satu praktisi .NET bahkan mendokumentasikan rutinitas lima agent paralel lewat pendekatan ini dan melapor lonjakan throughput sekitar lima kali lipat di tulisannya di DEV Community.
Kalau layar sering penuh sesama terminal, kelola sesi dengan multiplexer seperti tmux atau tab Windows Terminal. Satu pane untuk satu worktree, beri nama window sesuai branch supaya cepat melompat. Saya juga menempelkan prompt awal yang spesifik di tiap sesi: sebutkan file sasaran, definisi selesai, dan test yang harus lolos. Prompt tajam sejak awal memangkas arah maju mundur di tengah jalan.
Yang menentukan hasil bukan tool-nya tapi pemilihan task. Task yang cocok untuk paralel itu independen: beda file, beda concern, tanpa rantai dependensi. Contoh kombinasi sehat untuk satu sesi: refactor komponen grid, menambah integration test untuk endpoint, memperbaiki pipeline CSS, memperbarui dokumentasi API. Contoh kombinasi buruk: dua task yang sama-sama menyentuh service layer, karena konfliknya cuma ditunda sampai waktu merge.
Boris Cherny, pencipta Claude Code, menyebut worktree sebagai tips produktivitas nomor satu pribadinya. Dia menjalankan tiga sampai lima worktree sekaligus dan menilai pola ini paling berguna untuk perubahan besar dalam satu lemparan seperti migrasi kode lintas codebase.
Fase merge adalah momen penting yang sering diremehkan. Urutannya begini. Pertama, review diff tiap worktree satu per satu selagi agent lain masih boleh jalan. Kedua, jalankan test suite di worktree yang lolos review. Ketiga, merge ke branch utama satu per satu:
git checkout main
git merge fitur/refactor-grid
git merge fitur/tests-api
Setelah semua masuk, hapus worktree yang sudah selesai. Kalau pemilihan task dari awal benar, merge biasanya bersih. Konflik kecil tetap mungkin, dan penyelesaiannya sama seperti alur merge biasa. Kunci utamanya tetap satu: task independen sejak planning.
Saya pernah kena konflik ringan karena dua task sama-sama menyentuh file routing. Selesainya lima menit lewat alur merge standar, tapi pelajarannya jelas: kata independen itu soal file, bukan cuma soal fitur. Sekarang tiap task baru dicek dulu, file mana saja yang kemungkinan besar disentuh, baru diputuskan masuk slot paralel atau antre berurutan.
| Aspek | Satu folder dibagi agent | Clone terpisah | Git worktree |
|---|---|---|---|
| Konflik file saat kerja | Sering dan diam-diam | Aman | Aman |
| Ruang disk | Paling hemat | Boros, riwayat dobel | Hemat, riwayat dibagi |
| Sinkron commit antar workspace | Otomatis, satu folder | Perlu fetch dan push manual | Instan, satu object store |
| Jumlah riwayat git | Satu | Sesuai jumlah clone | Satu, dibagi semua |
| Cocok untuk | Hindari | Isolasi total, config beda | Agent paralel harian |
node_modules tidak ikut terbawa. Jalankan npm ci sekali di awal. Proyek Python butuh virtualenv sendiri per worktree.git worktree remove begitu merge selesai.Worktree bukan jawaban untuk semuanya. Beberapa situasi lebih baik tanpa itu:
Saya memakai pola ini untuk pekerjaan mingguan dan yang paling terasa bukan sekadar kecepatan mentah, tapi tenangnya. Tidak ada lagi momen menatap satu terminal sambil empat task menunggu giliran. Cukup tulis prompt yang jelas per worktree, lalu review diff satu per satu saat tiap agent selesai.
Untuk mulai besok, coba resep kecil: satu worktree untuk refactor ringan, satu untuk menambah test. Merge satu per satu sambil menjalankan test suite. Setelah kebiasaan ini mantap, naikkan ke tiga atau empat agent. Pemahaman soal memberi konteks yang tepat ke agent bisa lanjut di panduan context engineering untuk vibe coding, sedangkan pengenalan tool terminalnya ada di panduan Claude Code CLI untuk pemula. Kalau lebih suka bekerja di editor, ulasan Windsurf sebagai IDE vibe coding bisa jadi titik awal. Pendekatan refleksi diri pada agent juga dibahas di artikel self-correcting AI agent.
Selamat mencoba. Pulang kerja meninggalkan beberapa branch rapi yang tinggal direview itu ternyata rasa yang bikin nagak.